Factorial calculation in Python

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)

Leave a comment