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.