您的位置:首页 > Web前端

【剑指offer系列】 斐波那契数列___9

2016-04-07 11:07 232 查看
  题目描述:

  输入n,求斐波那契数列的第n项。

  斐波那契数列的递推公式:

  


    

  示例:

  输入2,f(2)=f(0)+f(1) = 1. 输出1

  

  分析:

  如果从n开始向下递归计算的话,根据递归树可以发现会有大量重复的计算。

  


  

  因此我们从下向上迭代,直到得到第n项的值为止。

  

  代码:  

long long getFibonacci(unsigned int n){
vector<long long> result(2);
result[0]=0;
result[1]=1;
if(n<=1)    return result
;

for(unsigned int i=1;i<n;++i){
result[0]=result[0]+result[1];
swap(result[0],result[1]);    //result[0]保存f[n-2],result[1]保存f[n-1]
}

return result[1];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: