'''
有一对兔子,从出生后开始每个与都生一对兔子,小兔子长到三个月以后每个月又生一对兔子
假如兔子都不死,问每个月兔子的对数
输入:
3
输出:
2
'''
n=int(input())
for z in range(n):
n=z
print('月份:',n+1)
if n<2: #0-1个月兔子数始终是1
print(1)
else:
list1=[1] #记录老兔子数
list2=[0,0] #记录新出生兔子数,分为出生第0个月、第一个月
for i in range(2,n+1):
new_tuzi=list1[-1] #新增兔子数等于老兔子数
old_tuzi=list1[-1] #老兔子数
#print('新兔子',new_tuzi)
#print('老兔子',old_tuzi)
list2.insert(0,new_tuzi) #将新增的兔子记录下来
#print(list2)
new_old_tuzi=list2.pop() #找出成长到两个月的新兔子
old_tuzi+=new_old_tuzi #将新兔子更新到老兔子中
list2[0]+=new_old_tuzi #此时新兔子已经生下一对了,所以将新生的兔子更新到0个月的兔子中
#记录最新的老兔子数
list1.append(old_tuzi)
print(list1)
print(list2)
print(old_tuzi+sum(list2)) #本月兔子数等于老兔子+0和1个月的新兔子
输入:10
输出:
10
月份: 1
1
月份: 2
1
月份: 3
2
月份: 4
3
月份: 5
5
月份: 6
8
月份: 7
13
月份: 8
21
月份: 9
34
月份: 10
55
可以看出第n个月的兔子数f(n)
f(n)=f(n-1)+f(n-2)就是斐波那契数列求解