I den här handledningen lär vi oss om rekursiv funktion i C ++ och dess arbete med hjälp av exempel.
En funktion som kallar sig själv är känd som en rekursiv funktion. Och den här tekniken är känd som rekursion.
Working of Recursion i C ++
void recurse() (… recurse();… ) int main() (… recurse();… )
Figuren nedan visar hur rekursion fungerar genom att kalla sig om och om igen.
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example.png.webp)
Rekursionen fortsätter tills något villkor är uppfyllt.
För att förhindra oändlig rekursion, om … annars uttalande (eller liknande tillvägagångssätt) kan användas där en gren gör det rekursiva samtalet och den andra inte.
Exempel 1: Faktor av ett nummer med hjälp av 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
Ange ett icke-negativt tal: 4 Faktor 4 = 24
Arbeta med faktorprogrammet
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example_2.png.webp)
Som vi kan se factorial()
kallar funktionen sig själv. Under varje samtal har vi dock minskat värdet på n med 1
. När n är mindre än 1
, den factorial()
funktion slutligen återgår utgången.
Fördelar och nackdelar med rekursion
Nedan visas för- och nackdelar med att använda rekursion i C ++.
Fördelar med C ++ rekursion
- Det gör vår kod kortare och renare.
- Rekursion krävs i problem som rör datastrukturer och avancerade algoritmer, såsom Graph and Tree Traversal.
Nackdelar med C ++ rekursion
- Det tar mycket stapelutrymme jämfört med ett iterativt program.
- Det använder mer processortid.
- Det kan vara svårare att felsöka jämfört med ett motsvarande iterativt program.