1、兔子繁殖问题:一对兔子,从出生后第3个月起每个月都生一对小兔子。小兔子长到第3个月后每个月又生一对小兔子。求第1~第20个月每个月有多少对兔子。(使用迭代算法和递归算法分别实现) 源程序
时间: 2023-10-16 15:33:36 浏览: 66
c代码-有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
使用迭代算法实现:
```python
def rabbit_pairs_iter(n):
if n == 1 or n == 2:
return 1
else:
prev, current = 1, 1
for i in range(2, n):
prev, current = current, prev + current
return current
for i in range(1, 21):
print("第%d个月有%d对兔子" % (i, rabbit_pairs_iter(i)))
```
使用递归算法实现:
```python
def rabbit_pairs_recursion(n):
if n == 1 or n == 2:
return 1
else:
return rabbit_pairs_recursion(n-1) + rabbit_pairs_recursion(n-2)
for i in range(1, 21):
print("第%d个月有%d对兔子" % (i, rabbit_pairs_recursion(i)))
```
两种方法的输出结果是一样的。
阅读全文