题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
n<=39
思路
1.用公式
class Solution {
public:
int Fibonacci(int n) {
double a = sqrt(5);
return (pow((1+a)/2, n) - pow((1-a)/2, n)) * (1/a);
}
};
2.用vector迭代
class Solution {
public:
int Fibonacci(int n) {
vector<int> a(n,0);
if(n == 0)
return 0;
if(n==1 || n==2)
return 1;
a[0] = a[1] = 1;
for(int i = 2; i < n; i++){
a[i] = a[i-1] + a[i-2];
}
return a[n-1];
}
};