Week 10

def fibMem(n,mem):
    if (mem[n] > -1):
        return mem[n]
    if (mem[n-1] >-1 and mem[n-2] >-1 ):
        mem[n] = mem[n-1] + mem[n-2]
        return mem[n]
    else:
        mem[n]=fibMem(n-1, mem) + fibMem(n-2, mem)
        return mem[n]
    

def fib(n):
    FF= [-2]*(n+1)
    FF[0] = 0
    if (n==0):
        return FF[0]
    FF[1] = 1
    return fibMem(n, FF)
    


print(fib(500))
## 139423224561697880139724382870407283950070256587697307264108962948325571622863290691557658876222521294125



Version: 08 November 2026