C ++ rekursija (su pavyzdžiu)

Šioje pamokoje sužinosime apie rekursinę funkciją C ++ ir jos darbą pavyzdžių pagalba.

Funkcija, kuri save vadina, vadinama rekursine funkcija. Ši technika yra žinoma kaip rekursija.

Rekursijos darbas C ++ formatu

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

Žemiau pateiktame paveikslėlyje parodyta, kaip veikia rekursija, skambinant sau vėl ir vėl.

Kaip vyksta rekursija programuojant C ++

Rekursija tęsiasi tol, kol įvykdoma kokia nors sąlyga.

Kad būtų išvengta begalinio rekurso, jei… galima naudoti teiginį (ar panašų metodą), kai vienas filialas atlieka rekursinį skambutį, o kitas - ne.

1 pavyzdys: Skaičiaus faktorius naudojant rekursiją

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

Rezultatas

 Įveskite ne neigiamą skaičių: 4 koeficientas iš 4 = 24

Faktorinės programos darbas

Kaip veikia ši C ++ rekursijos programa

Kaip matome, ši factorial()funkcija vadina save. Tačiau kiekvieno skambučio metu n reikšmę sumažinome 1. Kai n yra mažesnis 1, factorial()funkcija galiausiai grąžina išvestį.

Rekursijos privalumai ir trūkumai

Žemiau pateikiami rekurso naudojimo pliusai ir minusai C ++.

C ++ rekursijos privalumai

  • Tai daro mūsų kodą trumpesnį ir švaresnį.
  • Rekursija reikalinga iškilus problemoms, susijusioms su duomenų struktūromis ir pažangiais algoritmais, tokiais kaip diagrama ir medžių perėjimas.

C ++ rekursijos trūkumai

  • Tai užima daug vietos, palyginti su kartojama programa.
  • Jis naudoja daugiau procesoriaus laiko.
  • Derinti su lygiaverte iteracine programa gali būti sunkiau.

Įdomios straipsniai...