斐波那契数列—迭代与递归

兔子问题
意大利数学家莱昂纳多·斐波那契在《算盘书》中提出了兔子问题
20250712144656.png

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)

20250712151609.png

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)  

发表评论


欢迎大家光临我的博客!