Спасибо за видео, только у тебя понял принцип работы рекурсии, когда у функции есть два аргумента. До этого не мог осознать на что умножается число в этом коде. def power(a, n): if n == 0: return 1 else: return a * power(a, n - 1)
Можешь объяснить, как res переменная умножается? там же нету += base * pow(base, exp-1), а просто = Вот этого момента я не могу понять, даже пройдясь дебаггером шаг за шагом...
это происходит в момент вытягивания очередного элемента из стека return res будет возвращать значение для следующего base * pow(...) (можно представить это как очередной снимок состояния которое хранится в стеке)
Спасибо, чувак. Все доходчиво)
Спасибо за видео, только у тебя понял принцип работы рекурсии, когда у функции есть два аргумента. До этого не мог осознать на что умножается число в этом коде.
def power(a, n):
if n == 0:
return 1
else:
return a * power(a, n - 1)
Спасибо! Очень рад 👍
Можешь объяснить, как res переменная умножается? там же нету += base * pow(base, exp-1), а просто =
Вот этого момента я не могу понять, даже пройдясь дебаггером шаг за шагом...
это происходит в момент вытягивания очередного элемента из стека
return res будет возвращать значение для следующего base * pow(...)
(можно представить это как очередной снимок состояния которое хранится в стеке)
Спасибо, может быть первый вошёл и первый вышел?
В рекурсии используется стек, а стек это "первым вошёл - последним вышел" (как в видео).
"первый вошёл и первый вышел" - это описание очереди
@@DevMagazineChannel спасибо! Да, согласен)