In deze tutorial zullen we leren over recursieve functies in C ++ en het werken met behulp van voorbeelden.
Een functie die zichzelf aanroept, staat bekend als een recursieve functie. En deze techniek staat bekend als recursie.
Werken met recursie in C ++
void recurse() (… recurse();… ) int main() (… recurse();… )
De onderstaande figuur laat zien hoe recursie werkt door zichzelf keer op keer te bellen.
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example.png.webp)
De recursie gaat door totdat aan een bepaalde voorwaarde is voldaan.
Om oneindige recursie te voorkomen, kan de if… else-instructie (of vergelijkbare benadering) worden gebruikt wanneer de ene branch de recursieve aanroep doet en de andere niet.
Voorbeeld 1: faculteit van een getal met behulp van recursie
// 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; ) )
Uitvoer
Voer een niet-negatief getal in: 4 faculteiten van 4 = 24
Werking van Factorial Program
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example_2.png.webp)
Zoals we kunnen zien, factorial()
roept de functie zichzelf aan. Bij elke oproep hebben we de waarde van n echter verlaagd met 1
. Als n kleiner is dan 1
, factorial()
retourneert de functie uiteindelijk de uitvoer.
Voordelen en nadelen van recursie
Hieronder staan de voor- en nadelen van het gebruik van recursie in C ++.
Voordelen van C ++ Recursion
- Het maakt onze code korter en schoner.
- Recursie is vereist bij problemen met datastructuren en geavanceerde algoritmen, zoals Graph en Tree Traversal.
Nadelen van C ++ recursie
- Het kost veel stackruimte in vergelijking met een iteratief programma.
- Het gebruikt meer processortijd.
- Het kan moeilijker zijn om fouten op te sporen in vergelijking met een gelijkwaardig iteratief programma.