面试经常考到斐波纳契数列,今天就用 Python 给大家实现一下。

本贴最后更新于 1370 天前,其中的信息可能已经时移世改
有一对兔子从出生后第 3 个月起每个月都生一对兔子小兔子长到第三个月后
每个月又生一对兔子假如兔子都不死问每个月的兔子总数为多少
首先我们要明白题目的意思指的是每个月的兔子总对数假设将兔子分为小中大
三种兔子从出生后三个月后每个月就会生出一对兔子
那么我们假定第一个月的兔子为小兔子第二个月为中兔子第三个月之后就为
大兔子那么就有以下规律
第一个月:  1 0 0
第二个月 0 1 0
第三个月 1 0 1大兔子可以生一对小兔子
第四个月 1 1 1 
第五个月 2 1 2有两对大兔子可以生两对小兔子
第六个月 3 2 3
第七个月 5 3 5……
计算一下 兔子总数分别为11235813……
2 = 1+1 3 = 1+2 5 = 2+3 8 = 3+5 13 = 5+8
于是得出了一个规律从第三个月起后面的兔子总数都等于前面两个月的兔子
总数之和即为斐波那契数列
所以这道题最终是需要我们来打印斐波那契数列
打印斐波那契数列有非递归和递归两种思路我们分别用这两种思路来实现 12
个月的兔子对数
非递归方式

a, b = 0, 1
for i in range(1, 13):
    print('第%s个月:%s只兔子' % (i,b))
    a, b = b, a+b





回帖
请输入回帖内容 ...