У овом упутству ћемо научити о рекурзивној функцији у Ц ++ и њеном раду уз помоћ примера.
Функција која себе назива позната је као рекурзивна функција. А, ова техника је позната као рекурзија.
Рад рекурзије у језику Ц ++
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()
функција на крају враћа излаз.
Предности и недостаци рекурзије
Испод су предности и недостаци коришћења рекурзије у језику Ц ++.
Предности Ц ++ рекурзије
- То чини наш код краћим и чишћим.
- Рекурзија је потребна у проблемима који се тичу структура података и напредних алгоритама, као што су Графички приказ и Преокретање стабла.
Недостаци Ц ++ рекурзије
- Потребно је пуно простора за стог у поређењу са итеративним програмом.
- Користи више процесорског времена.
- Отклањање грешака може бити теже у поређењу са еквивалентним итеративним програмом.