C语言斐波那契数列解析
斐波那契数列(Fibonacci sequence),又称数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34 、55.
首先我们先探索规律,由上列数列我们可得第三个数等于前两个数之和。
1:递归
结果如下
但是对于这道题来说递归具有局限性,因为在递归方法中我们要求一个斐波那契数列就要求其前两个斐波那契数列,例如:
当n=30时,我们就要求28,29.
同时也要求26,27,27,28.
这就相当于我每进行一次运算就要求2的n-1次方个fib()函数。
我们可以引入一个count来更直观的了解一下。
通过结果我们不难看出当n=40时,一共执行了三千多万次程序。
因此非递归是个不错的选择。
2:非递归
结果如下
