私は Project Euler #25 に取り組んでいます。すべてのフィボナッチ数を BigInteger 配列に保存するつもりです。ただし、NullPointerException がスローされます。理由と回避方法がわかりません。この問題を解決するためのもっと単純なアルゴリズムがあることを私は知っています。しかし、どこが間違っているのか知りたいだけです。どうもありがとうございました!質問の状態は次のとおりです。フィボナッチ数列は、再帰関係によって定義されます。
Fn = Fn−1 + Fn−2、ここで F1 = 1 および F2 = 1. したがって、最初の 12 項は次のようになります。
F1 = 1 F2 = 1 F3 = 2 F4 = 3 F5 = 5 F6 = 8 F7 = 13 F8 = 21 F9 = 34 F10 = 55 F11 = 89 F12 = 144 第 12 項 F12 は、3 桁を含む最初の項です。 .
フィボナッチ数列で最初に 1000 桁になる項は?
私のコードは以下の通りです:
private static BigInteger[] fibonacci;
public static void main(String[] args) {
for(int i = 0; fibonacci[fibonacci.length-1].toString().length() < 1000; i++){
if(i == 0)
fibonacci[i] = BigInteger.ZERO;
if(i < 3)
fibonacci[i] = BigInteger.valueOf(1);
else
fibonacci[i] = fibonacci[i - 1].add(fibonacci[i - 2]);
}
System.out.println(fibonacci.length);
}