V tomto tutoriále sa pomocou príkladov dozvieme o rekurzívnej funkcii v C ++ a jej práci.
Funkcia, ktorá si hovorí, je známa ako rekurzívna funkcia. A táto technika je známa ako rekurzia.
Spracovanie rekurzie v C ++
void recurse() (… recurse();… ) int main() (… recurse();… )
Obrázok nižšie ukazuje, ako funguje rekurzia, keď sa volá znova a znova.

Rekurzia pokračuje, kým nie je splnená niektorá podmienka.
Aby sa zabránilo nekonečnej rekurzii, dá sa použiť príkaz … else (alebo podobný prístup), keď jedna vetva robí rekurzívne volanie a druhá nie.
Príklad 1: Faktoriál čísla pomocou rekurzie
// 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; ) )
Výkon
Zadajte nezáporné číslo: 4 Faktoriál 4 = 24
Fungovanie faktoriálneho programu

Ako vidíme, factorial()
funkcia si hovorí sama. Počas každého hovoru sme však znížili hodnotu n o 1
. Ak je n menšie ako 1
, factorial()
funkcia nakoniec vráti výstup.
Výhody a nevýhody rekurzie
Ďalej uvádzame výhody a nevýhody použitia rekurzie v jazyku C ++.
Výhody rekurzie C ++
- Robí náš kód kratší a čistejší.
- Rekurzia sa vyžaduje pri problémoch týkajúcich sa dátových štruktúr a pokročilých algoritmov, ako sú Graph a Traversal stromu.
Nevýhody rekurzie C ++
- V porovnaní s iteračným programom to trvá veľa miesta v zásobníku.
- Využíva viac času procesora.
- Ladenie môže byť ťažšie v porovnaní s ekvivalentným iteračným programom.