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.

Mai multe din Programare