【C语言】关于斐波那契数的求法
来源:互联网 发布:淘宝直播视频开店教程 编辑:程序博客网 时间:2024/05/18 01:09
斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*)。用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。
思路:第一种是利用递归。
int fib(int n) //求第n个斐波那契数{ if(n<2) return n; else return fib(n-1)+fib(n-2);}
第二种是利用迭代。
int fib(int n){ if(n<2) return n; else { int i=0; int f0=0; int f1=1; int f2=0; for(i=2;i<=n;i++) { f2=f1+f0; f0=f1; f1=f2; } return f2; }}
两种算法相比,递归的代码量小而且容易看懂,但是存在的弊端是当n较大时,递归所用的时间远远大于迭代运行出来所用的时间,而且它的冗余计算的数量也增长的非常快。比如在计算fib(10)时,fib(3)被计算了21次。当你在计算ib(30)时,fib(3)被计算了317 811次。所以在使用递归时就要考虑到,递归带来的好处是否抵得上它的代价。
0 0
- 【C语言】关于斐波那契数的求法
- 【C语言】斐波那契数
- C语言-斐波那契(Fibonacci)数列三种不同求法时间复杂度分析
- 斐波那契数的两种求法(效率对比)
- C语言 前n项斐波那数列,小于一个数的斐波那数列项
- C 语言:斐波那锲数
- 斐波那契数列的各种求法
- 斐波那契数列通项公式的求法
- 斐波那契(Fibonacci)数列的求法
- 斐波那契数列的三种求法
- 斐波那契数列的几种求法
- 斐波那契数列的各种求法
- 【c语言】用迭代计算斐波那契数
- C语言温习-斐波那契数
- 斐波那契数c语言程序
- 斐波那契三种求法
- 关于斐波那契数的JavaScript实现
- 菲波那契数列的快速幂矩阵求法
- 【转】趣谈电商的秒杀与抢购
- android长度转单位
- 通过B2C购物流程所能想到些什么!!
- NSUserDefaults存储数据全面剖析
- 泛型相关
- 【C语言】关于斐波那契数的求法
- 【转】IntelliJ IDEA导航特性Top20
- 100. Same Tree
- 单例模式与垃圾回收
- PyGobject(十四)布局容器之Button篇——Gtk.LockButton
- 接触Oracle锁定
- 临时记录
- mysql的sql_mode(SQL模式)调整对数据迁移的影响和处理
- 详解YUV数据格式