def fudz(n):
if n <= 2:
return 1
print("nom" * n)
return fudz(n-1) + fudz(n//2)
result = fudz(4)
Может кто-нибудь дать мне шаг за шагом этой функции?Как работают возвращаемые значения?
def fudz(n):
if n <= 2:
return 1
print("nom" * n)
return fudz(n-1) + fudz(n//2)
result = fudz(4)
Может кто-нибудь дать мне шаг за шагом этой функции?Как работают возвращаемые значения?
Это рекурсивная функция, что означает, что она вызывает экземпляр самого себя в упрощенном экземпляре проблемы, пока не попадет в базовый регистр, для которого он уже знает ответ. Помните, что любой вызов функции происходит в собственном стеке стека, поэтому он будет иметь собственное значение для n.
Вы можете пройтись через него самостоятельно. Во-первых, подумайте о том, что произойдет, когда n==2
. Тогда подумайте о n==3
и увеличьте n
, пока это не будет иметь для вас смысл.
Обратите внимание на * рекурсию *. – alex
Это рекурсивная функция, если это вообще помогает ;-). – mgilson
Нет, но когда вы проходите через него и имеете конкретные вопросы - мы можем с этим помочь. –