# 读取输入的月份n(1 ≤ n ≤ 31)
n = int(input())
# 初始化:第1个月、第2个月的兔子数量都是1只
mn = [1, 1] # 用列表存储每个月的兔子总数,索引0对应第1个月,索引1对应第2个月
# 循环生成从第3个月到第n个月的兔子数量
# range(2, n):因为列表已有前2个元素,所以从索引2(第3个月)开始,到n-1结束
for i in range(2, n):
# 递推公式:当月数量 = 前1个月数量 + 前2个月数量
# 对应斐波那契数列:F(i) = F(i-1) + F(i-2)
mn.append(mn[i-1] + mn[i-2])
# 处理特殊情况:第1个月和第2个月的兔子数量都是1
if n == 1 or n == 2:
print(1)
else:
# 输出第n个月的兔子总数
# 列表索引从0开始,所以第n个月对应索引n-1
print(mn[n-1])

京公网安备 11010502036488号