# 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? # 斐波那契数列:0,1,1,2,3,5,8,13,21(后面一个数是前面两个数的和) # 第1个月 2(1) # 第2个月 2(2) # 第3个月 2(3)+ 2(1) # 第4个月 2(3)+ 2(2) + 2(1) # 第5个月 2(3)+ 2(3) + 2(2) + 2(1) + 2(1) # 第6个月 2(3)+ 2(3) + 2(3) + 2(2) + 2(2) + 2(1) + 2(1)+ 2(1) # 第7个月 2(3)+ 2(3) + 2(3) + 2(3) + 2(3) + 2(2) + 2(2)+ 2(2)+ 2(1)+ 2(1)+ 2(1)+2(1)+ 2(1) # 月份 1 2 3 4 5 6 7 # 兔子 2 2 4 6 10 16 26 # 除二后 1 1 2 3 5 8 13 while True: try: i = eval(input(‘请输入月份:‘)) if type(i) == int and i <= 24: if i == 1 or i == 2: print("有2只兔子") break else: f1 = 1 f2 = 1 for f in range(3, i+1): f2, f1 =f1, f1 + f2 print(‘%d‘ % (f1*2)) break else: print(‘请输入大于0的正整数‘) except: print(‘您输入的是字符非法,请重新输入:‘) continue
原文地址:https://www.cnblogs.com/shen-qiang/p/8996603.html
时间: 2024-11-06 20:38:42