递归——斐波那契数列

这篇博客介绍了斐波那契数列的概念,通过递归和迭代两种方式展示了其在C++中的实现。递归是一种函数自我调用的方法,而迭代则是通过循环来解决问题。博主以生动的故事解释了递归的原理,并提供了斐波那契数列的前40位计算的思考题。
摘要由CSDN通过智能技术生成

http://blog.fishc.com/2194.html

递归

 

妹子,甲鱼哥今天给你讲一个故事吧,从前我有个小弟,酷爱探险,有一次他进了一个山洞,然后又出来,然后又进去,然后又出来,然后又进去,然后又出来。。。。。。后来他很开心~

艹,你说什么呢?

妹子悟性真高^_^

 

事实上递归就跟鸡生蛋蛋又生鸡的道理一样,只有等哪一天鸡不想生蛋了,做了绝孕手术或者用上了杜蕾斯,这个递归就算结束了。

 

斐波那契(Fibonacci)数列的递归实现

 

插句话:Sierpinski三角形源代码放在论坛,有需要的朋友可以去下载。

斐老跟小甲鱼有个共同爱好,就是老爱拿交配说事儿,不同的是小甲鱼注重过程和细节,斐老更关心结果,下边就有他讲的一个故事:

 

如果说兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。假设所有兔子都不会死去,能够一直干下去,那么一年以后可以繁殖多少对兔子呢?

 

斐波那契数列

 

斐波那契数列的迭代实现

 

我们都知道兔子繁殖能力是惊人的,如下图:

斐波那契数列

 

我们可以用数学函数来定义:

斐波那契数列

 

课间练习:假设我们需要打印出前40位斐波那契数列数,我们不妨一起考虑下用迭代如何实现?

 

斐波那契数列的递归实现

 

递归事实上就是函数自己调用自己,我们先一起看下代码的实现,然后再来分析:

int Fib(int i)
{
	if( i < 2 )
		return i == 0 ? 0 : 1;
 
	return Fib(i-1) + Fib(i-2);
}


斐波那契数列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值