Š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.

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 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.