斐波那契数列:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
#include<iostream>
#include<string.h>
using namespace std;
int Fibonacci(int n)
{
if(n==0 || n==1)
return 1;
/*非递归的方法
int Fibn = 1;
int Fibm = 0;
int res = 0;
while(n > 1)
{
res = Fibn + Fibm;
Fibm = Fibn;
Fibn = res;
--n;
}
return res;
*/
//return Fibonacci(n-1)+Fibonacci(n-2);//递归的方法
}
void main()
{
int res = Fibonacci(15);
cout<<res<<endl;
}
递归实现斐波那契数列由定义佷容易得到。
反过来想,我们计算斐波那契数列的第n项只要知道前两项即可,所以我们每次只要记录前两项的值在下一次再用即可得到非递归实现。