其中循环的方法比递归的方法时间复杂度更小,求解更快;
第一种方法:递归:
class Solution {
public:
int Fibonacci(int n) {
if(n==0)
return 0;
else if(n==1)
return 1;
else
return (Fibonacci(n-1)+Fibonacci(n-1));
}
};
第二种方法:循环
class Solution {
public:
int Fibonacci(int n) {
int f=0;
int f1=0;
int f2=1;
int i;
if(n==0)
return 0;
else if(n==1)
return 1;
else
for(i=2;i<=n;i++)
{
f=f1+f2;
f1=f2;
f2=f;
}
return f;
}
};