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 に答える