多数の階乗を計算する Java プログラムを作成しようとしています。これBigInteger
だけの数を保持することはできないようです。
以下は、私が書いた(簡単な)コードです。
public static BigInteger getFactorial(BigInteger num) {
if (num.intValue() == 0) return BigInteger.valueOf(1);
if (num.intValue() == 1) return BigInteger.valueOf(1);
return num.multiply(getFactorial(num.subtract(BigInteger.valueOf(1))));
}
上記のプログラムが 5022 で処理する最大数。その後、プログラムはStackOverflowError
. それを処理する他の方法はありますか?