PYTHON   50

fibonacci

Guest on 16th June 2022 01:40:10 AM

  1. #!/usr/bin/env python3
  2.  
  3. def memoize(func):# a decorator
  4.         memory = {}
  5.         def new_func(argument):
  6.                 if argument in memory:
  7.                         return memory[argument]
  8.                 else:
  9.                         value = func(argument)
  10.                         memory[argument] = value
  11.                         return value
  12.         return new_func
  13.  
  14. @memoize
  15. def fibonacci(n):
  16.          if 0 <= n <= 1:
  17.                  return n
  18.          return fibonacci(n-1) + fibonacci(n-2)
  19.  
  20. @memoize
  21. def brocot(n):
  22.          if 0 <= n <= 1:
  23.                  return (2, 1)[i]
  24.          return brocot(n-1) + brocot(n-2)
  25.  
  26. for i in range(200):
  27.         print(i, fibonacci(i), sep="\t")
  28.         #print(i, fibonacci(i), brocot(i), sep="\t")

Raw Paste


Login or Register to edit or fork this paste. It's free.