C Recursie (funcție recursivă)

Cuprins

În acest tutorial, veți învăța să scrieți funcții recursive în programarea C cu ajutorul unui exemplu.

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

Cum funcționează recursivitatea?

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

Recursiunea continuă până când este îndeplinită o condiție pentru a o preveni.

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

Exemplu: Suma numerelor naturale folosind recursivitatea

 #include int sum(int n); int main() ( int number, result; printf("Enter a positive integer: "); scanf("%d", &number); result = sum(number); printf("sum = %d", result); return 0; ) int sum(int n) ( if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; ) 

Ieșire

 Introduceți un număr întreg pozitiv: 3 sum = 6

Inițial, sum()se apelează din main()funcția cu numărul trecut ca argument.

Să presupunem că valoarea lui n din interior sum()este 3 inițial. În timpul următorului apel de funcție, 2 este trecut la sum()funcție. Acest proces continuă până când n este egal cu 0.

Când n este egal cu 0, ifcondiția eșuează și elsepartea este executată returnând suma întregilor în cele din urmă main()funcției.

Avantajele și dezavantajele recursivității

Recursivitatea face programul elegant. Cu toate acestea, dacă performanța este vitală, utilizați în schimb bucle, deoarece recursivitatea este de obicei mult mai lentă.

Acestea fiind spuse, recursivitatea este un concept important. Este frecvent utilizat în structura datelor și algoritmi. De exemplu, este obișnuit să se utilizeze recursivitatea în probleme precum traversarea arborelui.

Articole interesante...