Rekurzia C ++ (s príkladom)

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.

Ako funguje rekurzia v programovaní v C ++

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 funguje tento rekurzívny program v C ++

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.

Zaujímavé články...