Skip to content

Instantly share code, notes, and snippets.

@danilobatistaqueiroz
Forked from soeirosantos/fib.py
Created September 26, 2019 00:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danilobatistaqueiroz/c90216b092b0217314ac4aa4e4bbc4ff to your computer and use it in GitHub Desktop.
Save danilobatistaqueiroz/c90216b092b0217314ac4aa4e4bbc4ff to your computer and use it in GitHub Desktop.
a bit of Fibonacci with Python
def recursive_fib(n):
if n <= 1:
return n
return recursive_fib(n - 2) + recursive_fib(n - 1)
def memoized_fib(n):
f = [0] * (n + 1)
f[0] = 0
f[1] = 1
for i in range(2, n + 1):
f[i] = f[i - 2] + f[i - 1]
return f[n]
@lru_cache(maxsize=None)
def memoized_recursive_fib(n):
if n <= 1:
return n
return memoized_recursive_fib(n - 2) + memoized_recursive_fib(n - 1)
def last_digit_fib(n):
return memoized_fib(n) % 10
def improved_last_digit_fib(n):
f = [0] * (n + 1)
f[0] = 0
f[1] = 1
for i in range(2, n + 1):
f[i] = (f[i - 2] + f[i - 1]) % 10
return f[n]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment