Recursivitatea: Definiție. Clasificare

Definiție

O funcție se numește recursivă dacă ea se autoapelează.

Clasificare

Recursivitatea este de două tipuri: directă și indirectă.

În cazul în care auto-apelul se realizează în cadrul aceleiași funcții, recursivitatea este directă (A->A).

Atunci când auto-apelul se realizează prin intermediul altei funcții, recursivitatea este indirectă (A->B->...->A).

Funcţie recursivă directă:

int
fact(
int
n)
{
  
if
(n==1)
    
return
1;
  
return
n*fact(n-1) //apel recursiv
}

Funcţii recursive indirecte:

double
an(
int
n)
{
  
if
(!n)
return
a0;
  
return
((an(n-1)+bn(n-1))/2);
}

double
bn(
int
n)
{
  
if
(!n)
return
b0;
  
return
sqrt(an(n-1)*bn(n-1));
}
Obiective