Я пытался распечатать поток выполнения функции факториальной рекурсии.
def factorial(n):
space=' '*(4*n)
print(space,'factorial ',n)
if n==0:
print(space,'returning 1')
return 1
else:
recurse=factorial(n-1)
result=n*recurse
print(space,'returning ', result)
return n*recurse
При факториале (2) результат будет правильным:
factorial 2
factorial 1
factorial 0
returning 1
returning 1
returning 2
2
Но когда я этого не сделаюиспользуйте переменную recurse = factorial (n-1):
def factorial(n):
space=' '*(4*n)
print(space,'factorial ',n)
if n==0:
print(space,'returning 1')
return 1
else:
result=n*factorial(n-1)
print(space,'returning ', result)
return n*factorial(n-1)
, а затем при factorial (2) он напечатал другой поток:
factorial 2
factorial 1
factorial 0
returning 1
returning 1
factorial 0
returning 1
returning 2
factorial 1
factorial 0
returning 1
returning 1
factorial 0
returning 1
2
Мой вопрос: почему был другой потокисполнений [с переменной и без переменной recurse = factorial (n-1)]?