U ovom ćemo tutorijalu uz primjere naučiti o rekurzivnoj funkciji u C ++-u i njezinom radu.
Funkcija koja sebe naziva poznata je kao rekurzivna funkcija. A, ova je tehnika poznata kao rekurzija.
Rad rekurzije u jeziku C ++
void recurse() (… recurse();… ) int main() (… recurse();… )
Donja slika prikazuje kako rekurzija djeluje pozivanjem sebe iznova i iznova.
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example.png.webp)
Rekurzija se nastavlja sve dok se ne ispuni neki uvjet.
Da bi se spriječila beskonačna rekurzija, može se koristiti izjava if … else (ili sličan pristup) tamo gdje jedna grana upućuje rekurzivni poziv, a druga ne.
Primjer 1: Faktorijal broja pomoću rekurzije
// 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; ) )
Izlaz
Unesite nenegativan broj: 4 Factorial od 4 = 24
Rad Faktorijalnog programa
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example_2.png.webp)
Kao što vidimo, factorial()
funkcija se sama poziva. Međutim, tijekom svakog poziva smanjili smo vrijednost n za 1
. Kada je n manje od 1
, factorial()
funkcija na kraju vraća izlaz.
Prednosti i nedostaci rekurzije
Ispod su prednosti i nedostaci upotrebe rekurzije u jeziku C ++.
Prednosti C ++ rekurzije
- To čini naš kod kraćim i čišćim.
- Rekurzija je potrebna u problemima koji se tiču struktura podataka i naprednih algoritama, kao što su graf i stablo.
Mane C ++ rekurzije
- Potrebno je puno prostora za stog u usporedbi s iterativnim programom.
- Koristi više vremena procesora.
- Otklanjanje pogrešaka može biti teže u usporedbi s ekvivalentnim iterativnim programom.