私のロジックの不具合はわかりません。サンプル出力:私の再帰フィボナッチプログラムで何が問題になっていますか?
How many terms of the Fibonacci Sequence do you wish to compute?
1
1
1
--How many terms of the Fibonacci Sequence do you wish to compute?
5
5
5
5
5
5
5
これはなぜですか?あなたのループで
// Recursive Fibonacci Sequence
#include <iostream>
using namespace std;
double fib(double number);
int main(void) {
double number;
cout << "How many terms of the Fibonacci Sequence do you wish to compute?" << endl;
cin >> number;
for(int i = 0; i <= number; ++i)
cout << fib(number) << endl;
} // end main
// function fib definition
double fib(double number) {
if((number == 0) || (number == 1))
return number;
else
return fib(number - 1) + fib(number - 2);
} // end function fib
のために」それはひどくはありません効率的な " - それはthですenaïve、O(2^n)のフィボナッチ数列の解。しかし+1。 –
ああ、私は...ありがとう。男は私が愚かだと感じる#_ –
@larsmans:それはn回繰り返されているので、それより悪いです。 'fib'関数が単純なO(n)反復手法に変更されても、それはまだ不必要にO(n^2)になるでしょう - それを丸める方法がありますが、問題の範囲を超えていると思います。 –