Você está na página 1de 4

Assuntos abordados:

Recursividade (funo recursiva)


Algoritmos de funo e funo recursiva comentados (anexo)

Vanessa Balbo estudante do segundo do curso Anlise de Sistemas

Recursividade Funo Recursiva


A recursividade um recurso de programao onde uma
funo pode chamar a si prpria.
Para utilizar a funo recursiva fundamental estabelecer
um critrio de parada, ou seja, um parmetro que determine
quando a funo dever parar de chamar a si mesma.
Isto impede que a funo se chame infinitas vezes.
Exemplo - Fatorial
Fatorial de 5 = 1*2*3*4*5 = 120
2*3
6*4
24*5
120

Este algoritmo apresenta o fatorial de 3 usando a recursividade


#include<stdio.h>
#include<stdlib.h>
int fatorial ( int fator
3 )
{
if (fator<=1)
{
return 1;
}
else
{
return fator*fatorial
6 (fator-1);
}
}

Chamada 2

2
3*fatorial(3-1=2)

int main ()
{
int resultado, n;
printf("Digite o numero a ser fatorado \n");
scanf("%d",&n);
3 ); Chamada 1
resultado=fatorial( n
printf("\nO fatorial de %d eh: %d", n, resultado);
printf("\n\n");
system("pause");
}

Chamada 3

1
2*fatorial(2-1=1)
int fatorial (int fator)
{
if (fator<=1)
{
return 1;
}
else
{
return fator*fatorial(fator-1);
}
}

Chamada 4

1*fatorial(1-1=0)
int fatorial (int fator)
{
if (fator<=1)
{
return 1;
}
else
{
return fator*fatorial(fator-1);
}
}

O mesmo algoritmo usando o controle de fluxo while - looping


#include<stdio.h>
#include<stdlib.h>
int main ()
{
int fat=1,n,i=0;
printf("Digite o numero a ser fatorado \n");
scanf("%d",&n);
while(n>0)
{
fat=fat*n;
n--;
}
printf("\nO fatorial de %d eh: %d",n, fat);
printf("\n\n");
system("pause");
}

Observaes:
A recursividade no um tipo de estrutura de
repetio, mas um tipo de estrutura
equivalente, ou seja, que pode substituir um
lao for, while ou do-while.

Comparando:
A recursividade utiliza mais a memria e
menos o processador.
As estruturas de repetio utiliza mais o
processador e menos a memria.

Você também pode gostar