В этом руководстве мы узнаем о рекурсивной функции в C ++ и ее работе с помощью примеров.
Функция, которая вызывает сама себя, называется рекурсивной функцией. И этот метод известен как рекурсия.
Работа рекурсии в C ++
void recurse() (… recurse();… ) int main() (… recurse();… )
На рисунке ниже показано, как работает рекурсия, вызывая себя снова и снова.

Рекурсия продолжается до тех пор, пока не будет выполнено какое-либо условие.
Чтобы предотвратить бесконечную рекурсию, можно использовать оператор if… else (или аналогичный подход), когда одна ветвь выполняет рекурсивный вызов, а другая - нет.
Пример 1. Факториал числа с использованием рекурсии
// Factorial of n = 1*2*3*… *n #include using namespace std; int factorial(int); int main() ( int n, result; cout <> n; result = factorial(n); cout << "Factorial of " << n << " = " < 1) ( return n * factorial(n - 1); ) else ( return 1; ) )
Вывод
Введите неотрицательное число: 4 Факториал 4 = 24
Работа факторной программы

Как мы видим, factorial()
функция вызывает сама себя. Однако во время каждого вызова мы уменьшали значение n на 1
. Когда n меньше 1
, factorial()
функция в конечном итоге возвращает результат.
Преимущества и недостатки рекурсии
Ниже приведены плюсы и минусы использования рекурсии в C ++.
Преимущества рекурсии C ++
- Это делает наш код короче и чище.
- Рекурсия требуется в задачах, касающихся структур данных и сложных алгоритмов, таких как Graph и Tree Traversal.
Недостатки рекурсии C ++
- Это занимает много места в стеке по сравнению с итеративной программой.
- Он использует больше процессорного времени.
- Отладка может оказаться более сложной по сравнению с эквивалентной итеративной программой.