首页 > 其他 > 详细

斐波那契数列 详解

时间:2016-03-26 16:56:15      阅读:299      评论:0      收藏:0      [点我收藏+]

下面来简单说一下斐波那契数列的有效率的解法:

我们刚刚接触递归时肯定学习了斐波那契数列这样一个经典的例子,但这里的递归算法有一些效率问题。因为如果我们求fib(100)时。我们会发现产生了许多的重复运算。这些不但消耗着计算时间和资源容易产生栈溢出。这是非常危险的。所以下面介绍一个迭代的算法:(算法不难)

 

算法实现:

 1 #include<iostream>
 2 using namespace std;
 3 
 4 long long Fib(unsigned n){
 5     int num[2] = {0, 1};
 6     if(n < 2){
 7         return num[n];
 8     }
 9     
10     long long fib1 = 0;
11     long long fib2 = 1;
12     long long fibN = 0;
13     
14     for(int i = 2; i <= n; ++i){                //迭代过程
15         fibN = fib1 + fib2;
16         fib1 = fib2;
17         fib2 = fibN;
18     }
19     return fibN;
20 }
21 
22 int main(){
23     long long num = Fib(6);
24     cout<<num<<endl;
25     return 0;
26 }

 

斐波那契数列 详解

原文:http://www.cnblogs.com/dormant/p/5323014.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!