fork download
  1. def memoize(f):
  2. cache = {}
  3. return lambda *args: cache[args] if args in cache else cache.update({args: f(*args)}) or cache[args]
  4.  
  5. @memoize
  6. def fib(n):
  7. return n if n < 2 else fib(n-2) + fib(n-1)
  8.  
  9. print(fib(500))
Success #stdin #stdout 0.02s 29080KB
stdin
Standard input is empty
stdout
139423224561697880139724382870407283950070256587697307264108962948325571622863290691557658876222521294125