Jon*_*ein 1 c++ recursion fibonacci
我不确定我的逻辑中的错误是什么.样本输出:
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
Run Code Online (Sandbox Code Playgroud)
它为什么这样做?
// 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
Run Code Online (Sandbox Code Playgroud)
看看你的循环:
for(int i = 0; i <= number; ++i)
cout << fib(number) << endl;
Run Code Online (Sandbox Code Playgroud)
注意循环的主体如何不使用i......它总是调用fib(number).改变fib(i)它将修复它.
(这不是非常有效,因为你每次都会重新计算价值,但这是一个单独的问题.虽然你可以把印刷放进去fib,这混合了"如何处理结果"和"计算斐波纳契"的问题序列".)