
В компьютерных науках рекурсия — это процесс, когда функция вызывает себя снова и снова, пока не будет достигнут базовый случай.
Базовый случай — это условие, при котором наша рекурсия перестает вызывать саму себя.
Итак, чтобы написать нашу рекурсивную функцию, нам нужно определить базовый случай в верхней части нашей функции. Если мы не сможем предоставить базовый вариант, мы получим неограниченные рекурсивные вызовы, а затем рекурсия вылетит с ошибкой.
Давайте рассмотрим простой пример рекурсивной функции счетчика:
В строке 8 мы вызываем нашу функцию, вычитая единицу из нашего аргумента, который мы передали нашей функции, когда мы вызываем ее в строке 11, если мы изменим это, чтобы добавить, нам нужно изменить базовый регистр в строке 4 на: if(number >= 100) return number , вы можете использовать любое число, которое я только что случайно поставил 100.
Давайте рассмотрим другой пример, более сложный. Число Фибоначчи:
Как мы знаем, число Фибоначчи — это последовательность, в которой каждое число является суммой двух предыдущих, поэтому нам нужны два базовых случая, один из которых соответствует 0, которые мы определяем в строка 4, а вторая предназначена для случаев, когда число равно единице, которую мы определяем в строке 6. В строке 8 мы сначала вызываем нашу функцию с аргументами number — 1 и number — 2 и возвращаем сумму двух чисел при каждом рекурсивном вызове и результирующее число в конце вычисления.
Хотя рекурсию сложно понять, это отличный инструмент, когда вы сталкиваетесь с проблемами, которые можно решить рекурсивно. Рекурсия также является одним из многих популярных вопросов, которые можно задать на технических собеседованиях. Особенно для младших веб-разработчиков.