0

我正在尝试比较大到连 BigIntegers 都无法处理的数字。我的解决方案是将数字转换为字符串并对其使用字符串比较。

这行得通吗?我不太确定如何实现这样的东西。我只是试图对一个算法进行单元测试,以为我被吸引到的项目 Euler 程序产生 1000 的阶乘。

4

1 回答 1

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());
    }

}
于 2011-09-27T00:44:18.723 回答