9. 斐波那契数列

斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, ... 每一项等于前两项之和。经典的"兔子产子"问题就是斐波那契数列的起源。

兔子产子问题

一对兔子从第 3 个月起每月生一对兔子,小兔子长到第 3 个月后也每月生一对。假设兔子不死,30 个月内每个月的兔子对数是多少?

python
fib1 = 1  # 第 1 个月
fib2 = 1  # 第 2 个月
print(f"{fib1} {fib2}", end=" ")

i = 3
while i <= 30:
    fib = fib1 + fib2  # 当前月 = 前两个月之和
    print(fib, end=" ")
    if i % 8 == 0:
        print()  # 每 8 个换行
    fib2 = fib1  # 为下一个月做准备
    fib1 = fib
    i += 1

▶ 运行结果:

输出
1 1 2 3 5 8 13 21 
34 55 89 144 233 377 610 987 
1597 2584 4181 6765 10946 17711 28657 46368 
75025 121393 196418 317811 514229 832040 
💡 迭代法核心

用两个变量 fib1fib2 保存前两个月的值,每次循环更新它们。这种"滚动更新"的方式只需要常数级空间,比递归高效得多。