题目描述:
· 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39
解题思路:
思路一:递归(时间复杂度高)
斐波那契数列递归公式
思路二:循环
用两个变量保存前两个数值,计算两个变量的和并更新变量,这样只需计算一次。
代码实现
思路1:递归
class Solution {
public:
int Fibonacci(int n) {
if(n<=0)
return 0;
if(n==1)
return 1;
return Fabonacci(n-1)+Fabonacci(n-2);
}
};
思路2:循环
class Solution {
public:
int Fibonacci(int n) {
int res[2]={0,1};
if(n<2){
return res[n];
}
int fib1,fib2,fib;
fib1=0;
fib2=1;
fib=0;
for(int i=2;i<=n;i++){
fib=fib1+fib2;
fib1=fib2;
fib2=fib;
}
return fib;
}
};
};
网友评论