July 12, 2025/7 阅读
斐波那契数列—迭代与递归
兔子问题
意大利数学家莱昂纳多·斐波那契在《算盘书》中提出了兔子问题
n个月(n>=3)的兔子 = (n-1)个月的兔子 + (n-2)个月的兔子
月份: 0 1 2 3 4 5 。。。12 依依
兔子对数: 0 1 1 2 3 5 。。。? 相应
def fib(n):
lst = [0,1,1]
for i in range(3,n+1):
res = lst[i-1] + lst[i-2]
lst.append(res)
return lst[n]
fib(12)
def fib(n):
if n == 1 or n=== 2:
return 1
res=fib(n-1)+fib(n-2)
return res
fib(12)
mamo = {}
def fib(n):
if n == 1 or n=== 2:
return 1
if n in memo:
return memo[n]
res=fib(n-1)+fib(n-2)
memo[n] = res
return res
fib(12)