C语言 打印斐波那契数

大家好!今天来打印斐波那契数

首先,斐波那契数

斐波那契数列(Fibonacci sequence),又称 黄金分割 数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义: F (0)=0, F (1)=1, F (n)= F (n - 1)+ F (n - 2)( n ≥ 2, n ∈ N*)

我将用两种方法来打印斐波那契数。

第一种:

函数递归

 下面以图加以理解:

此时进入if语句和else语句,return Fib( 3 )+ Fib( 2 ) ,再次调用本身。

此时进入if语句和else语句, else语句返回1,if语句返回Fib(2)+ Fib(1),再次调用本身。

此时都符合else语句,所以返回2,开始回归,然后回到Fib(3)+ Fib(2),Fib(3)= 2,Fib(2) = 1,得出3。递归就是递推加回归。

如果求第50个数,则会等好久,这是因为当调用函数时,会不断向栈区申请空间,当栈空间耗尽时,就会溢出,就是栈溢出(stack overflow)。

 所以,要换一种方式,使用一种非递归的方式,我这里用到迭代的方式来完成。

第二种:

迭代

迭代属于循环的一种。

 迭代的效率比递归高,但是不如递归的方便。所以,根据情况来选择,不要动不动就递归。

希望对你有所帮助!!!^__^

病骨质离纱帽宽,孤臣万里客江干。

                                                         -------《病起书怀》陆游

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值