Thursday, 12 January 2017

How to calculate Factorial of number in python using Recursion, Iteration and Memoization

This script defines three methods to calculate the factorial of a number. First method uses Recursion , second one uses the Iteration using a for loop and third one uses Memoization(Dynamic Programming).

Code:

def FactorialRecursive(num):
 if num < 0:
  print 'Invalid Input'
  return -1
 if num== 0:
  return 1
 return num*FactorialRecursive(num-1)


def FactorialIterative(num):
 if num >= 0:  
  fact = 1
  for numbers in range(1,num+1):
   fact = fact* numbers
  return fact
 else:
  print 'Invalid Input'
  return -1

def FactorialDP(num):
 if num < 0:
  print 'Invalid Input'
  return -1

 result = [1]*20
 for numbers in range(1,num+1):
  result[numbers] = numbers * result[numbers-1]

 return result[num]
 
#Take user input and call the Factorial function
userNum = int(raw_input('Enter the Number : '))

print 'Factorial using Recursive Method for {0} : {1}'.format(userNum, FactorialRecursive(userNum))
print 'Factorial using Iterative Method for {0} : {1}'.format(userNum, FactorialIterative(userNum))
print 'Factorial using Dynamic Programming Method for {0} : {1}'.format(userNum, FactorialDP(userNum))

Execution:


No comments:

Post a Comment