が[OK]を、私は最初に3を生成するユーザ入力に基づいて一連のフィボナッチ数を返すために、単純なコード..フィボナッチ数列 - 再帰総和は
N = 5 ..
static int fibonacci(int n) {
if (n == 1)
return 0;
else if (n == 2)
return 1;
else
return (fibonacci(n - 1) + fibonacci(n - 2));
}
を書い私は、シリーズの値を返すのではなく、シリーズの合計を返すようにコードを修正することを考えていましたが、私は誤ってreturn文に1を加えました。
以下のコードは、n = 5の場合7を返します。
私はまだシリーズの総和が、私は1を追加した場合、誰かが説明していただけますどのように動作するかを見つけ出すことができませんでした...
これは合計を計算するための正しい方法であるかどうかわかりませんよ?
static int fibonacci(int n) {
if (n == 1)
return 0;
else if (n == 2)
return 1;
else
return (fibonacci(n - 1) + fibonacci(n - 2)+(1));
}
EDIT:フィボナッチseries..0,1,1,2,3,5,8,13,21,34,55,89,144については
....
Iいくつかのランダムなnに対して試み
N = 13
関数が返す376
0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 + 144 = 376
N = 10
機能88
0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 = 88
n = 5の場合、結果は11でなく7(1 + 2 + 3 + 5 = 11)になります。あなたは正確に何を計算したいですか? – niculare
0から1で始まるので... 0 + 1 + 1 + 2 + 3 ... – Learner
シリーズの次の番号では機能しますか?そうでない場合、アルゴリズムは間違っています。 –