-1
def fib_memo(n, memo={}):
    if n == 0 or n == 1:
        return 0
    try:
        return memo[n]
    except KeyError:
        result = fib_memo(n-1, memo) + fib_memo(n-2, memo)
        memo[n] = result
        return result

for i in range(121):
    print('fib', str(i),fib_memo(i))

Returning the following output

fib 0 0
fib 1 0
fib 2 0
fib 3 0
fib 4 0
fib 5 0
fib 6 0
fib 7 0
fib 8 0
fib 9 0
fib 10 0
azro
  • 47,041
  • 7
  • 30
  • 65
Rynax
  • 19
  • 4

1 Answers1

2

fib(1) is 1, not 0, so you need to change if n==0 or n==1: return 0 to if n==0 or n==1: return n.

Paul Hankin
  • 50,269
  • 11
  • 86
  • 107