Рекурсія С ++ (на прикладі)

У цьому посібнику ми дізнаємося про рекурсивну функцію в 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

Робота факторної програми

Як працює ця програма рекурсії С ++

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

Переваги та недоліки рекурсії

Нижче наведено плюси і мінуси використання рекурсії в C ++.

Переваги рекурсії С ++

  • Це робить наш код коротшим і чистішим.
  • Рекурсія потрібна для проблем, що стосуються структур даних та вдосконалених алгоритмів, таких як обхід графіків та дерев.

Недоліки рекурсії С ++

  • Це займає багато місця в стеку порівняно з ітеративною програмою.
  • Він використовує більше процесорного часу.
  • Налагодження може бути складніше порівняно з еквівалентною ітеративною програмою.

Цікаві статті...