Fibonacci number

Recursive

def fib(n):
    if n < 0:
        return
    if n <=1:
        return n
    else:
        return fib(n-1) + fib(n-2)

Iterative

def fibdp(n):
    f = [0]*(n+1)
    f[1], f[0] = 1, 0
    for i in range(2, n+1):
        f[i] = f[i-1] + f[i-2]
        #f[i] += f[i-1] + f[i-2]

Recursive + Memo

def fibMemo(n, memo):
    if memo[n]:
        return memo[n]
    if 0<= n <=1:
        result = n
    else:
        result = fibdp(n-1, memo) + fibdp(n-2, memo)
    memo[n] = result
    
    return result
memo = [None for _ in range(num+1)]
fibMemo(num, memo)

Last updated