题目描述
斐波那契数列,在基础课上学过三种方法求解
C++ 代码
//数组做法
class Solution {
public:
int Fibonacci(int n) {
int sum[40];
sum[0] = 0;
sum[1] = 1;
for(int i = 2; i <= n; i++)
{
sum[i] = sum[i-1] + sum[i-2];
}
return sum[n];
}
};
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
// 普通循环做法
class Solution {
public:
int Fibonacci(int n) {
int sum = 0;
int temp1 = 0;
int temp2 = 1;
if(n == 0) return temp1;
else if(n == 1) return temp2;
else{
for(int i = 2; i <= n; i++)
{
sum = temp1 + temp2;
temp1 = temp2;
temp2 = sum;
}
}
return sum;
}
};
// 迭代做法
class Solution {
public:
int Fibonacci(int n) {
int sum;
if(n == 0) return 0;
else if(n <= 2) return 1;
else {
sum = Fibonacci(n-1) + Fibonacci(n-2);
}
return sum;
}
};
```