PYTHON
50
fibonacci
Guest on 16th June 2022 01:40:10 AM
#!/usr/bin/env python3
def memoize(func):# a decorator
memory = {}
def new_func(argument):
if argument in memory:
return memory[argument]
else:
value = func(argument)
memory[argument] = value
return value
return new_func
@memoize
def fibonacci(n):
if 0 <= n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
@memoize
def brocot(n):
if 0 <= n <= 1:
return (2, 1)[i]
return brocot(n-1) + brocot(n-2)
for i in range(200):
print(i, fibonacci(i), sep="\t")
#print(i, fibonacci(i), brocot(i), sep="\t")