Ц ++ рекурзија (са примером)

У овом упутству ћемо научити о рекурзивној функцији у Ц ++ и њеном раду уз помоћ примера.

Функција која себе назива позната је као рекурзивна функција. А, ова техника је позната као рекурзија.

Рад рекурзије у језику Ц ++

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

На доњој слици је приказано како рекурзија делује позивањем себе изнова и изнова.

Како рекурзија ради у програмирању на Ц ++

Рекурзија се наставља све док се не испуни неки услов.

Да би се спречила бесконачна рекурзија, може се користити изјава иф … елсе (или сличан приступ) где једна грана врши рекурзивни позив, а друга не.

Пример 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()функција се сама позива. Међутим, током сваког позива смањили смо вредност н за 1. Када је н мање од 1, factorial()функција на крају враћа излаз.

Предности и недостаци рекурзије

Испод су предности и недостаци коришћења рекурзије у језику Ц ++.

Предности Ц ++ рекурзије

  • То чини наш код краћим и чишћим.
  • Рекурзија је потребна у проблемима који се тичу структура података и напредних алгоритама, као што су Графички приказ и Преокретање стабла.

Недостаци Ц ++ рекурзије

  • Потребно је пуно простора за стог у поређењу са итеративним програмом.
  • Користи више процесорског времена.
  • Отклањање грешака може бити теже у поређењу са еквивалентним итеративним програмом.

Занимљиви Чланци...