题目:
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死, 问每个月的兔子总数为多少?
程序分析:
兔子的规律为数列 1,1,2,3,5,8,13,21 后一个月为前两个月之和
第1个月 1对 = 总和1对
第2个月 1对 = 总和1对
第3个月 1对+1对新生 = 总和2对
第4个月 2对+1对新生 = 总和3对
第5个月 3对+2对新生 = 总和5对
第6个月 5对+3对新生 = 总和8对
第7个月 ...
第8个月...
代码:
#程序11
'''
题目:
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月
后每个月又生一对兔子, 假如兔子都不死, 问每个月的兔子总数为多少?
程序分析:
兔子的规律为数列 1,1,2,3,5,8,13,21 后一个月为前两个月之和
第1个月 1对 = 总和1对
第2个月 1对 = 总和1对
第3个月 1对+1对新生 = 总和2对
第4个月 2对+1对新生 = 总和3对
第5个月 3对+2对新生 = 总和5对
第6个月 5对+3对新生 = 总和8对
第7个月 ...
第8个月...
'''
def sum_list(n):
"""创建一个兔子列表函数"""
if n == 1:
return [1]
if n == 2:
return [1, 1]
#n>2
sum_all = [1, 1]
for i in range(2, n):
sum_all.append(sum_all[-2] + sum_all[-1])
return sum_all
n = int(input('您想知道第几个月份后的兔子总数,请输入这是第几个月:'))
list1 = sum_list(n)
print('兔子对数列表')
print(list1)
print('兔子总数')
dui_shu = int(list1[len(list1)-1])
result = dui_shu*2
print(result)
结果:
您想知道第几个月份后的兔子总数,请输入这是第几个月:7
兔子对数列表
[1, 1, 2, 3, 5, 8, 13]
兔子总数
26
Process finished with exit code 0