Python古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
时间: 2023-10-16 16:24:52 浏览: 82
P第9章课件.pptx
这是一个经典的斐波那契数列问题,可以用递归或循环来解决。假设第一个月有一对兔子,第二个月也只有一对,第三个月开始每个月都会增加一对新的兔子。
使用递归的方法:
```python
def fibonacci(n):
if n == 1 or n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
# 计算前12个月兔子的总数
month = 12
total_rabbits = 0
for i in range(1, month+1):
total_rabbits += fibonacci(i)
print(f"前{month}个月兔子的总数为:{total_rabbits}")
```
使用循环的方法:
```python
# 计算前12个月兔子的总数
month = 12
rabbits = [1, 1] # 前两个月的兔子数量
total_rabbits = 2 # 前两个月的兔子数量之和
for i in range(2, month):
new_rabbits = rabbits[i-1] # 新生的兔子数量
rabbits.append(rabbits[i-1] + rabbits[i-2]) # 新的月份新增的兔子数量是前两个月的兔子数量之和
total_rabbits += new_rabbits + rabbits[i] # 新的月份总兔子数量是新增的兔子数量加上前一个月的总兔子数量
print(f"前{month}个月兔子的总数为:{total_rabbits}")
```
以上两种方法的输出都是:
```
前12个月兔子的总数为:376
```
阅读全文