Рекурсия C ++ (с примером)

В этом руководстве мы узнаем о рекурсивной функции в C ++ и ее работе с помощью примеров.

Функция, которая вызывает сама себя, называется рекурсивной функцией. И этот метод известен как рекурсия.

Работа рекурсии в C ++

 void recurse() (… recurse();… ) int main() (… recurse();… )

На рисунке ниже показано, как работает рекурсия, вызывая себя снова и снова.

Как работает рекурсия в программировании на C ++

Рекурсия продолжается до тех пор, пока не будет выполнено какое-либо условие.

Чтобы предотвратить бесконечную рекурсию, можно использовать оператор 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

Работа факторной программы

Как работает эта программа рекурсии C ++

Как мы видим, factorial()функция вызывает сама себя. Однако во время каждого вызова мы уменьшали значение n на 1. Когда n меньше 1, factorial()функция в конечном итоге возвращает результат.

Преимущества и недостатки рекурсии

Ниже приведены плюсы и минусы использования рекурсии в C ++.

Преимущества рекурсии C ++

  • Это делает наш код короче и чище.
  • Рекурсия требуется в задачах, касающихся структур данных и сложных алгоритмов, таких как Graph и Tree Traversal.

Недостатки рекурсии C ++

  • Это занимает много места в стеке по сравнению с итеративной программой.
  • Он использует больше процессорного времени.
  • Отладка может оказаться более сложной по сравнению с эквивалентной итеративной программой.

Интересные статьи...