请参考我的:乎雹衡
最后一个是利用BigInteger类制成的岁做,这里可以用更大的肆稿更大的阶乘。
public class Factorial{
protected static ArrayList table = new ArrayList();
static{ table.add(BigInteger.valueOf(1));}
public static synchronized BigInteger factorial(int x){
for(int size=table.size();size<=x;size++){
BigInteger lastfact= (BigInteger)table.get(size-1);
BigInteger nextfact= lastfact.multiply(BigInteger.valueOf(size));
table.add(nextfact);
}
return (BigInteger) table.get(x);
}
}
System.out.print(factorial(1977));
}
}
add里面的参数必须也是BigInteger类型,你用b.add(c)或者new一桥亏个BigInteger d = new BigInteger("1"); b.add(d)就哗消亮可以了乱宽
BigInteger num = new BigInteger("1");
for(int i = 1;i!=1978;i++){
num = num.multiply(new BigInteger(i+"棚孝"));
}
System.out.println(num);
你的链笑稿错误升友应该修改为 b=b.add(new BigInteger("1"))
BigInteger类中有add这个方法吗?