I denne vejledning lærer vi om rekursiv funktion i C ++ og dens arbejde ved hjælp af eksempler.
En funktion, der kalder sig selv, er kendt som en rekursiv funktion. Og denne teknik er kendt som rekursion.
Working of Recursion i C ++
void recurse() (… recurse();… ) int main() (… recurse();… )
Figuren nedenfor viser, hvordan rekursion fungerer ved at kalde sig igen og igen.
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example.png.webp)
Rekursionen fortsætter, indtil en eller anden betingelse er opfyldt.
For at forhindre uendelig rekursion, hvis … ellers kan udsagn (eller lignende tilgang) bruges, hvor den ene gren foretager det rekursive opkald, og den anden ikke gør det.
Eksempel 1: Faktor af et tal ved hjælp af rekursion
// 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; ) )
Produktion
Indtast et ikke-negativt tal: 4 Faktor af 4 = 24
Arbejde med faktorprogrammet
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example_2.png.webp)
Som vi kan se, factorial()
kalder funktionen sig selv. Under hvert opkald har vi dog reduceret værdien af n med 1
. Når n er mindre end 1
, factorial()
returnerer funktionen i sidste ende output.
Fordele og ulemper ved rekursion
Nedenfor er fordele og ulemper ved at bruge rekursion i C ++.
Fordele ved C ++ rekursion
- Det gør vores kode kortere og renere.
- Rekursion er påkrævet i problemer med datastrukturer og avancerede algoritmer, såsom Graph og Tree Traversal.
Ulemper ved C ++ rekursion
- Det tager meget stakplads i forhold til et iterativt program.
- Det bruger mere processortid.
- Det kan være sværere at debugge sammenlignet med et tilsvarende iterativt program.