Структуры данных и алгоритмы на 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) запускаетсяfactorial(5) не завершилась -> запускается factorial(4)factorial(4) не завершилась -> запускается factorial(3)
factorial(5) запускаетсяfactorial(5) не завершилась -> запускается factorial(4)factorial(4) не завершилась -> запускается factorial(3)factorial(3) не завершилась -> запускается factorial(2)
factorial(5) запускаетсяfactorial(5) не завершилась -> запускается factorial(4)factorial(4) не завершилась -> запускается factorial(3)factorial(3) не завершилась -> запускается factorial(2)factorial(2) не завершилась -> запускается factorial(1)
factorial(5) запускаетсяfactorial(5) не завершилась -> запускается factorial(4)factorial(4) не завершилась -> запускается factorial(3)factorial(3) не завершилась -> запускается factorial(2)factorial(2) не завершилась -> запускается factorial(1)
factorial(1) завершаетсяfactorial(2) завершается
factorial(1) завершаетсяfactorial(2) завершается
factorial(1) завершаетсяfactorial(2) завершаетсяfactorial(3) завершается
factorial(1) завершаетсяfactorial(2) завершаетсяfactorial(3) завершаетсяfactorial(4) завершается
factorial(1) завершаетсяfactorial(2) завершаетсяfactorial(3) завершаетсяfactorial(4) завершаетсяfactorial(5) завершается
factorial(1) завершаетсяfactorial(2) завершаетсяfactorial(3) завершаетсяfactorial(4) завершаетсяfactorial(5) завершается
Структуры данных и алгоритмы на Python