我需要解决Java在计算和存储大数字方面的限制的解决方案



在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类中的任意精度带符号十进制数。

最新更新