Informatică Programare
Functii recursive C++ exemple
O funcție recursivă în C++ este o funcție care se autoapelează direct sau indirect pentru a rezolva o problemă. Recursivitatea se bazează pe un caz de bază care oprește apelurile și un caz recursiv care reduce problema. Exemplu clasic: calculul factorialului n! = n * (n-1)! pentru n>0, cu 0! = 1.
Exemple de funcții recursive
- Factorial int factorial(int n) { if (n <= 1) return 1; else return n * factorial(n-1); } - calculează n!.
- Fibonacci int fib(int n) { if (n <= 1) return n; else return fib(n-1) + fib(n-2); } - calculează al n-lea termen Fibonacci.
- Suma cifrelor int sumaCifre(int n) { if (n == 0) return 0; else return (n % 10) + sumaCifre(n / 10); } - adună cifrele unui număr.
Caracteristici ale recursivității
- Caz de bază Condiția care oprește recursivitatea (ex: n <= 1 pentru factorial).
- Caz recursiv Partea care autoapelează funcția cu argumente reduse (ex: factorial(n-1)).
- Stiva de apeluri Fiecare apel recursiv adaugă un cadru pe stivă, consumând memorie.
Folosește recursivitatea pentru probleme cu structuri repetitive naturale, dar atenție la adâncimea stivei.