/*递归法
#include<iostream>
using namespace std;
int fib(int); //fib()函数的原型声明
int main()
{
int i,n;
cout << "请输入要计算到第几项斐波那契数列:";
cin >> n;
for (i = 0; i <= n; ++i) //计算前n项斐波那契数列
cout << "fib(" << i << ")=" << fib(i) << endl;
return 0;
}
int fib(int n) //定义函数fib()
{
if (n == 0)
return 0; //如果n=0,就返回0
else if (n == 1)
return 1; //如果n=1,就返回1
else
return fib(n - 1) + fib(n - 2); //递归调用本身两次
}
*/
/*递归法+动态规划法
#include<iostream>
using namespace std;
int fib(int); //fib()函数的原型声明
int main()
{
int i, n;
cout << "请输入要计算到第几项斐波那契数列:";
cin >> n;
for (i = 0; i <= n; ++i) //计算前n项斐波那契数列
cout << "fib(" << i << ")=" << fib(i) << endl;
return 0;
}
int output[1000] = { 0 }; //斐波那契数列的暂存区
int fib(int n) //定义函数fib()
{
int result;
result = output[n];
if (result == 0)
{
if (n == 0)
return 0; //如果n=0,就返回0
else if (n == 1)
return 1; //如果n=1,就返回1
else
return fib(n - 1) + fib(n - 2); //递归调用本身两次
output[n] = result;
}
return result;
}
*/