# 【Python3练习题 007】 有一对兔子,从出生后第3个月起每个月都生一对兔子, # 小兔子长到第三个月后每个月又生一对兔子, # 假如兔子都不死,问每个月的兔子总数为多少?...
时间: 2023-10-16 21:10:51 浏览: 72
这是一个经典的斐波那契数列问题,可以使用递归或循环来解决。
以下是使用循环的代码实现:
```python
def rabbit_count(month):
# 初始有一对兔子
a, b = 1, 0
for i in range(month):
# 每个月新生的兔子数量为上个月兔子总数(包括新生的和已经成熟的)
new = b
# 新生的兔子成为了成熟的兔子
b += a
# 上个月的成熟兔子数量等于上上个月的兔子总数(不包括新生的兔子)
a = new
# 返回本月兔子总数
return a + b
```
使用递归的代码实现:
```python
def rabbit_count(month):
if month == 1 or month == 2:
# 第一个月和第二个月只有一对兔子
return 1
else:
# 递归计算前两个月的兔子总数,加上新生的兔子数量
return rabbit_count(month-1) + rabbit_count(month-2)
```
调用该函数即可得到每个月的兔子总数。例如,如果要计算前12个月的兔子总数,可以这样做:
```python
for i in range(1, 13):
print("第%d个月的兔子总数为:%d" % (i, rabbit_count(i)))
```
输出结果如下:
```
第1个月的兔子总数为:1
第2个月的兔子总数为:1
第3个月的兔子总数为:2
第4个月的兔子总数为:3
第5个月的兔子总数为:5
第6个月的兔子总数为:8
第7个月的兔子总数为:13
第8个月的兔子总数为:21
第9个月的兔子总数为:34
第10个月的兔子总数为:55
第11个月的兔子总数为:89
第12个月的兔子总数为:144
```
阅读全文