Using a Python Dictionary to Cache Results of a Recursive Function
I used recursive functions to calculate factorials. I created my own dictionary to cache the results of successive calculations.
#with caching, using my own dictionary
cache={}
def factorial(n):
if n<=1: #this is the base case
return 1
else:
cache[n-1]=factorial(n-1)
cache[n]=cache[n-1]*n #we don't get to this line until previous line has got to n=1
return cache[n]
# ask user to input a number the factorial of which the user wishes to find
num= int(input("What number? "))
print(num,'! = ',factorial(num)) # the recursive factorial function is called here
print("Now I will print the dictionary's contents.")
#print out the dictionary
for key, value in cache.items():
print(f'key:{key}, value:{value}')
Comments
Post a Comment