Selles õpetuses õpime näidete abil C ++ rekursiivset funktsiooni ja selle töötamist.
Funktsioon, mis ennast kutsub, on tuntud kui rekursiivne funktsioon. Ja seda tehnikat tuntakse rekursioonina.
Rekursiooni töötamine C ++ keeles
void recurse() (… recurse();… ) int main() (… recurse();… )
Alloleval joonisel on näidatud, kuidas rekursioon töötab, kutsudes ennast ikka ja jälle.
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example.png.webp)
Rekursioon jätkub, kuni mõni tingimus on täidetud.
Lõputu rekursiooni vältimiseks saab kasutada… lauset (või muud sarnast lähenemist), kus üks haru teeb rekursiivse kõne ja teine mitte.
Näide 1: Rekursiooni kasutava arvu faktor
// 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äljund
Sisestage mittenegatiivne arv: 4 faktoriaal 4 = 24
Faktoriaalprogrammi töö
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example_2.png.webp)
Nagu näeme, kutsub factorial()
funktsioon ennast ise. Kuid iga kõne ajal oleme n väärtust vähendanud 1
. Kui n on väiksem 1
, factorial()
tagastab funktsioon lõpuks väljundi.
Rekursiooni eelised ja puudused
Allpool on rekursiooni kasutamise plussid ja miinused C ++ keeles.
C ++ rekursiooni eelised
- See muudab meie koodi lühemaks ja puhtamaks.
- Rekursioon on vajalik andmekonstruktsioonide ja täiustatud algoritmidega seotud probleemides, näiteks Graafiku ja Puu läbimine.
C ++ rekursiooni puudused
- See võtab korduva programmiga võrreldes palju virnaruumi.
- See kasutab rohkem protsessori aega.
- Silumist võib olla keerulisem võrrelda samaväärse iteratiivse programmiga.