我试图比较那么大的数字,甚至BigIntegers也无法处理它们。我的解决方案是将数字转换为字符串并对它们使用字符串比较。
这会有用吗?我真的不确定如何实现这样的东西。我只是试图对一个算法进行单元测试,以便为我所吸引的项目Euler程序生成1000的阶乘。
答案 0 :(得分:1)
你的假设是错误的。
BigInteger提供任意精度,因此它绝对可以处理这么大的数字。
尝试以下方法:
public class Main {
public static void main(String[] args) {
BigInteger thousand = BigInteger.valueOf(1000L);
for (int i = 999; i > 0; i--)
{
thousand = thousand.multiply(BigInteger.valueOf(i));
}
System.out.println(thousand.toString());
}
}