Fibonacci的遞迴及非遞迴實現
阿新 • • 發佈:2019-02-07
斐波那契數列: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項只要知道前兩項即可,所以我們每次只要記錄前兩項的值在下一次再用即可得到非遞迴實現。