КАК РЕКУРСИЯ РАБОТАЕТ В ПРОГРАММИРОВАНИИ
Функция рекурсии — это магия. Есть много проблем, которые кажутся такими сложными для решения, но для этого требуется несколько строк кода функции рекурсии. Вы можете слышать или читать об использовании рекурсии для решения таких задач, как поиск числа Фибоначчи или факториала. Теперь я использую другой простой пример, чтобы объяснить, как работает функция рекурсии.
Для наглядности работы функции набросаю картинку:
По направлению ветра:
- Функция будет вызывать себя до тех пор, пока не будет выполнено условие для прекращения рекурсивного вызова.
- Когда условие выполнено. Обратите внимание, что y == 0 является условием остановки. Функция вернет 1 и будет готова к перемотке назад.
- Чтобы рекурсивная функция соответствовала базовому случаю (y == 0), функция должна вызывать себя с модификацией (модификациями) в своем аргументе. Здесь я уменьшаю y до 0.
Направление перемотки:
- Перед выполнением перемотки направления помните, что все рекурсивные функции, которые были вызваны, все еще находятся в стеке.
- Условие остановки заставляет его возвращать значение и освобождать себя в стеке.
- Рекурсивные функции вернут значение своему предшественнику.
На примере вычисления 3 степени 8 см. функцию, возвращающую 1 и умноженную на 3 (базовое число). Он продолжает перематывать, пока не вернет исходную функцию. Окончательное значение после 8 вызовов рекурсии равно 6516.