python基础练习题(有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?)

2023-06-26,,

day6

---------------------------------------------------------------

实例011:养兔子

题目 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

有点复杂,先分析下,写出来几种情况,把每个兔子的状态标注下,慢慢的发现了规律,成熟的兔子和小兔子一样多,中兔子与上一个的小兔子一样多,大兔子同理,而成熟的兔子等于上月的成熟兔+大兔子,再调整下顺序输出就可以了,哈哈哈

 1 import copy
2
3 # 3个月 1成熟 0大 0中 1小
4 # 4个月 1成熟 0大 1中 1小
5 # 5个月 1成熟 1大 1中 1小
6 # 6个月 2成熟 1大 1中 2小
7 # 7个月 3成熟 1大 2中 3小
8 # 8个月 4成熟 2大 3中 4小
9 # 9个月 6成熟 3大 4中 6小
10 list = [1,0,0,0]
11 list1 = [0,0,0,0]
12 sum1 = 0
13 x = int(input("请输入月份:"))
14 for i in range(x+1):
15 if i <3:
16 sum1 = 1
17 else:
18 list1[2] = list[3]
19 list1[1] = list[2]
20 list1[0] = list[1] + list[0]
21 list1[3] = list1[0]
22 list = copy.copy(list1)
23 print("list1:",list1)
24 sum1 = sum(list1)
25 print("兔子总数为:",sum1)

再看看正确答案,第7行看了半天才看懂,就是把我的简化了下,看了下解析,其实这个数列是斐波那契数列:0,1,1,2,3,5,8,13,21。。。尴尬

1 month=int(input('繁殖几个月?: '))
2 month_1=1
3 month_2=0
4 month_3=0
5 month_elder=0
6 for i in range(month):
7 month_1,month_2,month_3,month_elder=month_elder+month_3,month_1,month_2,month_elder+month_3
8 print('第%d个月共'%(i+1),month_1+month_2+month_3+month_elder,'对兔子')

python基础练习题(有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?)的相关教程结束。

《python基础练习题(有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?).doc》

下载本文的Word格式文档,以方便收藏与打印。