# stores recent function calls
fibonacci_cache = {}
def fibonacci(n):
# check if the input is an integer
if type(n) != int:
raise TypeError("The input must be an integer")
# check if the input is a postive integer
if (n < 1):
raise ValueError("Input must be a positive integer")
# if we have cached the value, then return it
if n in fibonacci_cache:
return fibonacci_cache[n]
# compute the nth term
if (n == 1):
value = 1
elif (n == 2):
value = 1
elif (n > 2):
value = fibonacci(n - 1) + fibonacci(n - 2)
# cache the value and return it
fibonacci_cache[n] = value
return value
for n in range(1, 101):
print(f"{n}: {fibonacci(n)}")
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter