有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第n个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21....
时间: 2023-11-06 15:03:39 浏览: 72
c代码-有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
这是一个 Fibonacci 数列,可以使用递归或循环来解决。
递归方法:
```python
def fib(n):
if n <= 2:
return 1
else:
return fib(n-1) + fib(n-2)
month = int(input("请输入月份:"))
rabbit_num = fib(month)
print("第%d个月共有%d对兔子。" % (month, rabbit_num))
```
循环方法:
```python
month = int(input("请输入月份:"))
a, b = 1, 1
for i in range(2, month):
a, b = b, a+b
rabbit_num = b
print("第%d个月共有%d对兔子。" % (month, rabbit_num))
```
两种方法的思路都是一样的,都是根据 Fibonacci 数列的递推公式来计算。递归方法比较简单,但是在计算大的 Fibonacci 数列时,效率较低,容易出现栈溢出等问题。循环方法效率较高,能够计算较大的 Fibonacci 数列。
阅读全文