Data Structures and Algorithms in Python
Miriam Antona
Software engineer
$n!$
$n!=n$ · $(n-1)$ · $(n-2)$ · $...$ · $1$
$5!=$ $5$ · $4$ · $3$ · $2$ · $1=120$
def factorial(n):
result = 1
while n > 1:
result = n * result
n -= 1
return result
factorial(5)
120
$n!= n$ · $(n-1)!$
def factorial_recursion(n):
return n * factorial_recursion(n-1)
def factorial_recursion(n): if n == 1:return 1else:return n * factorial_recursion(n-1)
print(factorial_recursion(5))
120
factorial(5) startsfactorial(5) finishes -> factorial(4) startsfactorial(4) finishes -> factorial(3) starts
factorial(5) startsfactorial(5) finishes -> factorial(4) startsfactorial(4) finishes -> factorial(3) startsfactorial(3) finishes -> factorial(2) starts
factorial(5) startsfactorial(5) finishes -> factorial(4) startsfactorial(4) finishes -> factorial(3) startsfactorial(3) finishes -> factorial(2) startsfactorial(2) finishes -> factorial(1) starts
factorial(5) startsfactorial(5) finishes -> factorial(4) startsfactorial(4) finishes -> factorial(3) startsfactorial(3) finishes -> factorial(2) startsfactorial(2) finishes -> factorial(1) starts
factorial(1) finishesfactorial(2) finishes
factorial(1) finishesfactorial(2) finishes
factorial(1) finishesfactorial(2) finishesfactorial(3) finishes
factorial(1) finishesfactorial(2) finishesfactorial(3) finishesfactorial(4) finishes
factorial(1) finishesfactorial(2) finishesfactorial(3) finishesfactorial(4) finishesfactorial(5) finishes
factorial(1) finishesfactorial(2) finishesfactorial(3) finishesfactorial(4) finishesfactorial(5) finishes
Data Structures and Algorithms in Python