-
-
Save danilobatistaqueiroz/c90216b092b0217314ac4aa4e4bbc4ff to your computer and use it in GitHub Desktop.
a bit of Fibonacci with Python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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