Rekurzija C ++ (s primerom)

V tej vadnici bomo s pomočjo primerov spoznali rekurzivno funkcijo v jeziku C ++ in njeno delovanje.

Funkcija, ki se sama pokliče, je znana kot rekurzivna funkcija. Ta tehnika je znana kot rekurzija.

Delovanje rekurzije v jeziku C ++

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

Spodnja slika prikazuje, kako deluje rekurzija tako, da se vedno znova kliče.

Kako deluje rekurzija pri programiranju na C ++

Rekurzija se nadaljuje, dokler ni izpolnjen neki pogoj.

Da bi preprečili neskončno rekurzijo, lahko uporabimo stavek if … else (ali podoben pristop), kjer ena veja izvede rekurzivni klic, druga pa ne.

Primer 1: Faktor s številom, ki uporablja rekurzijo

 // 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; ) )

Izhod

 Vnesite nenegativno število: 4 Factorial of 4 = 24

Delovanje Faktorialnega programa

Kako deluje ta rekurzijski program C ++

Kot lahko vidimo, factorial()funkcija sama kliče. Vendar smo med vsakim klicem znižali vrednost n za 1. Ko je n manj kot 1, factorial()funkcija na koncu vrne izhod.

Prednosti in slabosti rekurzije

Spodaj so prednosti in slabosti uporabe rekurzije v jeziku C ++.

Prednosti C ++ rekurzije

  • Zaradi tega je naša koda krajša in čistejša.
  • Rekurzija je potrebna pri težavah v zvezi s podatkovnimi strukturami in naprednimi algoritmi, kot sta graf in drevesa.

Slabosti C ++ rekurzije

  • V primerjavi s ponovitvenim programom potrebuje veliko prostora za sklad.
  • Uporablja več procesorskega časa.
  • Napake je lahko težje odpraviti v primerjavi z enakovrednim iterativnim programom.

Zanimive Članki...