n を取り、n 番目のフィボナッチ数を返すメソッドがあります。メソッドの実装内ではBigDecimal
、n 番目のフィボナッチ数を取得するために使用し、メソッドを使用しtoBigInteger()
てその数をBigInteger
オブジェクトとして取得します。これは、アプリケーションで巨大な数を扱っているためです。
メソッドの引数として1475を渡すまで、正しい結果が得られ続けます。私はNumberFormatException: Infinite or NaN
明確な理由なしにこのケースに入ります。
この例外が発生する理由を教えてください。
これが私の方法です:
BigInteger getFib(int n){
double phi = (1 + Math.sqrt(5))/2;
double squareRoot = (Math.sqrt(5)) + (1/2);
BigDecimal bd = new BigDecimal(Math.floor(Math.pow(phi, n)/(squareRoot)));
return bd.toBigInteger();
}