题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
解题思路:看到这个我第一反应就是递归。。然而递归的话重复计算的部分会有很多,时间花费会很大,所以就想到了迭代,讨论区里还有说动态规划的,我也贴上来,还没有看太懂,,学习中
迭代:public class Solution {
public int Fibonacci(int n) {
//f(n) = f(n-1) + f(n - 2)
int firPreNum = 1;//n的前一个数
int secPreNum = 0;//n的前2个数
int result = 0;
if(n == 0){
return 0;
}else if(n == 1){
return 1;
}else{
for(int i = 2; i <= n; i++)
{
result = firPreNum + secPreNum;
secPreNum = firPreNum;
firPreNum = result;
}
}
return result;
}
动态规划:
c++动态规划版
1 2 3 4 5 6 7 8 9 10 11 |
|