Recursivitate C ++ (cu exemplu)

În acest tutorial, vom afla despre funcția recursivă în C ++ și funcționarea acesteia cu ajutorul unor exemple.

O funcție care se numește singură este cunoscută ca funcție recursivă. Și această tehnică este cunoscută sub numele de recursivitate.

Funcționarea recursivității în C ++

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

Figura de mai jos arată cum funcționează recursivitatea apelându-se mereu.

Cum funcționează recursivitatea în programarea C ++

Recursivitatea continuă până când este îndeplinită o condiție.

Pentru a preveni recursivitatea infinită, dacă se poate folosi instrucțiunea … else (sau o abordare similară) acolo unde o ramură face apelul recursiv și cealaltă nu.

Exemplul 1: Factorialul unui număr folosind recursivitate

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

Ieșire

 Introduceți un număr non-negativ: 4 Factorial din 4 = 24

Lucrul programului factorial

Cum funcționează acest program de recursivitate C ++

După cum putem vedea, factorial()funcția se numește singură. Cu toate acestea, în timpul fiecărui apel, am redus valoarea lui n cu 1. Când n este mai mic decât 1, factorial()funcția returnează în cele din urmă ieșirea.

Avantajele și dezavantajele recursivității

Mai jos sunt avantajele și dezavantajele utilizării recursivității în C ++.

Avantajele recursivității C ++

  • Face codul nostru mai scurt și mai curat.
  • Este necesară recursivitatea în problemele referitoare la structurile de date și algoritmi avansați, cum ar fi Graph și Tree Traversal.

Dezavantaje ale recursivității C ++

  • Este nevoie de mult spațiu în stivă în comparație cu un program iterativ.
  • Folosește mai mult timp de procesor.
  • Poate fi mai dificil de depanat în comparație cu un program iterativ echivalent.

Articole interesante...