在python中,通过一个简单的循环,你可以计算,比方说600!
,这是一个非常非常大的数字,但python可以在几分之一秒内轻松处理它。即使它的长度超过200
位数。另一方面,在java中,您被绑定到64位文字(长数据类型)。因此机器将返回0。
有什么办法可以克服这个问题吗?
您可以使用Java BigInteger
类。
还有一个简单的例子:
import java.math.BigInteger;
BigInteger k = BigInteger.valueOf(10000L);
k = k.pow(10000);
//k is now 10000^10000
System.out.println(k.toString());
重要的是要知道类是不可变的。您还可以查看类似的BigDecimal
类中的任意精度带符号十进制数。