斐波那契数列问题解法总结--递归、动态规划、矩阵幂

一、递归方法

时间复杂度O(2^n)

def fibonacci(n):
    if n == 1:
        return 1
    elif n == 2:
        return 1
    elif n > 2:
        return fibonacci(n-1)+fibonacci(n-2)

for n in range(1,100):
    print(n,':', fibonacci(n))

二、动态规划递归实现方法

时间复杂度O(n),空间复杂度O(n)

fibonacci_cache = {}
def fibonacci(n):
    if n in fibonacci_cache:
        return fibonacci_cache[n]
    if n == 1:
        value = 1
    elif n == 2:
        value = 1
    elif n > 2:
        

你可能感兴趣的:(Written,Test,Python,算法,斐波那契数列,递归,动态规划)