用python实现假设有一对新生的兔子,从第三个月开始他们每个月月初都生一对兔子,新生的兔子从第三个月月初开始又每个月又生一对兔子。按此规律,并假定兔子没有死亡,n(n<=20)个月月未共有多少对兔子?
时间: 2023-07-16 10:14:48 浏览: 80
c代码-有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
这是一个经典的斐波那契数列问题,可以使用递归或循环的方式来解决。
递归方式实现:
```python
def fib(n):
if n == 1 or n == 2:
return 1
else:
return fib(n-1) + fib(n-2)
n = 20
count = fib(n+1)
print("第%d个月共有%d对兔子" % (n, count))
```
循环方式实现:
```python
n = 20
a, b = 1, 1
for i in range(3, n+1):
a, b = b, a+b
count = b
print("第%d个月共有%d对兔子" % (n, count))
```
两种方式的输出结果都是:
```
第20个月共有6765对兔子
```
阅读全文