我正在尝试比较大到连 BigIntegers 都无法处理的数字。我的解决方案是将数字转换为字符串并对其使用字符串比较。
这行得通吗?我不太确定如何实现这样的东西。我只是试图对一个算法进行单元测试,以为我被吸引到的项目 Euler 程序产生 1000 的阶乘。
我正在尝试比较大到连 BigIntegers 都无法处理的数字。我的解决方案是将数字转换为字符串并对其使用字符串比较。
这行得通吗?我不太确定如何实现这样的东西。我只是试图对一个算法进行单元测试,以为我被吸引到的项目 Euler 程序产生 1000 的阶乘。
你的假设是错误的。
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());
}
}