思路:
- 公式 ,
- 递归去写,代码很简洁,时间复杂度很高,为指数级,涉及到了大量的重复计算,不建议
- 用循环去写,定义3个遍历,分别代表,循环中的操作借鉴swap操作
class Solution {
public:
int Fibonacci(int n) {
if(n==0)
return 0;
if(n==1)
return 1;
int first=1,second=0,ret=0;
for(int i=2;i<=n;i++){
ret=first+second;
second=first;
first=ret;
}
return ret;
}
};