Version1: Recursive definition of factorial function
def factorial(n):
if n == 0: return 1
return n * factorial(n-1)
Memoization of factorial function:
mem= {}
def factorial_mem(n):
if not n in mem:
mem[n]= factorial(n)
return mem
Complete version:
def factorial(n):
if n == 0: return 1
return n * factorial(n-1)
mem= {}
def factorial_mem(n):
if not n in mem:
mem[n]= factorial(n)
return mem
if __name__ == '__main__':
print factorial(10)
print factorial_mem(10)