26

在 python 中,你可以计算一个简单的循环,假设600!它是一个非常非常大的数字,但 python 可以在几分之一秒内轻松处理它。即使它比200数字长。另一方面,在 java 中,您必须使用 64 位文字(长数据类型)。所以机器将返回 0。
有什么办法可以克服这个问题吗?

4

1 回答 1

51

您可以使用 JavaBigInteger类。

还有一个简单的例子:

import java.math.BigInteger;

BigInteger k = BigInteger.valueOf(10000L);
k = k.pow(10000);
//k is now 10000^10000 
System.out.println(k.toString());

重要的是要知道类是不可变的。您还可以查看BigDecimal任意精度有符号十进制数的类似类。

于 2013-07-30T08:15:11.223 回答