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 ++ рекурсията

  • Това прави нашия код по-кратък и по-чист.
  • Рекурсията се изисква при проблеми, касаещи структури от данни и усъвършенствани алгоритми, като например обръщане на графика и дърво.

Недостатъци на C ++ рекурсията

  • Отнема много място в стека в сравнение с итеративна програма.
  • Използва повече време за процесор.
  • Може да бъде по-трудно за отстраняване на грешки в сравнение с еквивалентна итеративна програма.

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