有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后
每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
首先我们要明白题目的意思指的是每个月的兔子总对数;假设将兔子分为小中大
三种,兔子从出生后三个月后每个月就会生出一对兔子,
那么我们假定第一个月的兔子为小兔子,第二个月为中兔子,第三个月之后就为
大兔子,那么就有以下规律:
第一个月: 小 1、中 0、大 0,
第二个月:小 0、中 1、大 0,
第三个月:小 1、中 0、大 1,大兔子可以生一对小兔子
第四个月:小 1、中 1、大 1,
第五个月:小 2、中 1、大 2,有两对大兔子可以生两对小兔子
第六个月:小 3、中 2、大 3,
第七个月:小 5、中 3、大 5……
计算一下: 兔子总数分别为:1、1、2、3、5、8、13……
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
1635
4
49
578
323
14
2
241
421
欢迎来到testingpai.com!
注册 关于