斐波那契的遞迴和非遞迴解法
阿新 • • 發佈:2018-12-11
斐波那契數列:像1,1,2,3,5,8.....這樣的數列
通常定義為:F(1)=1,F(2)=2,F(n)=F(n-1)+F(n-2)(n>2)
非遞迴解法如下:
int Fibonacci(int n) { int ret[2]={0,1}; if(n<2) { return ret[n]; } int first=1; int second=0; int sum=0; for(int i=2;i<=n;i++) { sum=first+second; first=second; second=sum; } return sum; }
遞迴解法如下:
int Fibonacci(int n)
{
if(n<=0)
{
return 0;
}
if(n==1)
{
return 1;
}
return Fibonacci(n-1)+Fibonacci(n-2);
}