将大数字转换为String格式以进行比较

时间:2011-09-27 00:36:15

标签: java biginteger factorial

我试图比较那么大的数字,甚至BigIntegers也无法处理它们。我的解决方案是将数字转换为字符串并对它们使用字符串比较。

这会有用吗?我真的不确定如何实现这样的东西。我只是试图对一个算法进行单元测试,以便为我所吸引的项目Euler程序生成1000的阶乘。

1 个答案:

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

}