有一对兔子,从出生后第3个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,用户输入一个月份数,计算并在一行内输出该月的兔子总对数
month = int(input())
a, b = 1, 1
for i in range(3, month + 1):
a, b = b, a + b
print("总共有兔子数为:", b)
month = int(input("请输入月份: "))
if month == 1 or month == 2: # 兔子从第三个月才开始生兔子,所以前两个月单拿出来
print("总共有兔子数为1只")
else:
a = 1
b = 1
c = 0
for i in range(3, month + 1):
c = a + b # 第n个月等于第n-1个月+第n-2个月
a = b
b = c
print("总共有兔子数为:", c)
观察前几个月的猴子数量,发现某一个月的猴子数量等于前两个月的猴子数量,所以可以使用递归思想来解决这一个问题
month = int(input("请输入月份: "))
def rabbit(n):
if n <= 2:
return 1
else:
return rabbit(n - 1) + rabbit(n - 2)
for month in range(1, month + 1):
a = rabbit(month)
print("%d总共有兔子数为: %d" % (month, a))



