C ++ rekurzija (s primjerom)

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.

Kako rekurzija radi u programiranju na C ++

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

Kako ovaj C ++ rekurzijski program radi

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.

Zanimljivi članci...