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