Created
September 26, 2019 00:44
-
-
Save soeirosantos/2156b335bbec91006a9e6eb041337df4 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