'''一个古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第三个月后每个月又生一对兔子。假设兔子都不死,一年共有多少只兔子?
通过分析:
第1个月: 1只
第2个月: 1只
第3个月: 2只
第4个月: 3只
第5个月: 5只
……
所以就有了这样一些数:
1 1 2 3 5 8 13 21 ……
有 f(n) = f(n-1) + f(n-2)
当数量越来越大时,f(n-2) / f(n-1) 的值越来越接近黄金分割数 0.618,很是奇妙啊!
'''
num = []
num.extend([1, 1]) #将第一个月和第二个月的兔子保存
total = num[0] + num[1] #保存兔子总数
for i in range(2, 12): #减去前两个月,还剩10个月
num.append(num[i-1] + num[i-2])
total += num[i]
print(num) #num 列表里每一个值保存着一年每个月的兔子量
print('一年兔子总数为:' + str(total))
斐波那契数列
最新推荐文章于 2019-01-05 18:39:08 发布