算概率 高精度——hdu4043

推出公式;
f[0]=1
f[1]=1/2*f[0]
f[2]=1/4*(f[0]+f[1])
f[3]=1/6*(f[0]+f[1]+f[2])
f[4]=1/8*(f[0]+f[1]+f[2]+f[3])
……JAVA处理
View Code
import java.util.*;
import java.math.*;

public class Main {
public static void main(String args[])
{
Scanner cin
=new Scanner(System.in);
BigInteger a[],temp,all,fenzi,fenmu;
a
= new BigInteger [509];
temp
=BigInteger.valueOf(2);
a[
0]=BigInteger.valueOf(1);

int i,j;
for(i=1;i<=1009;i++)
{
a[
0]=a[0].multiply(temp);
}
a[
1]=a[0];
a[
1]=a[1].divide(temp);
all
=a[0];
all
=all.add(a[1]);

for(i=2;i<=500;i++)
{
a[i]
=all.divide(BigInteger.valueOf(2*i));
all
=all.add(a[i]);
}

int t=cin.nextInt();
while(t!=0)
{
t
--;
int n;
n
=cin.nextInt();
temp
=a[0].gcd(a[n]);
fenzi
=a[n].divide(temp);
fenmu
=a[0].divide(temp);
System.out.println(fenzi
+"/"+fenmu);

}

}
}
原文地址:https://www.cnblogs.com/huhuuu/p/2181784.html