Recursividade ocorre quando uma função recorre a si mesma
Por: Jesus Martinez • 11/11/2018 • Pesquisas Acadêmicas • 384 Palavras (2 Páginas) • 245 Visualizações
[pic 1]
Aluno: Jesus Bruno Gabriel Coronel Martinez
Aluno: Thiago Jeremias
Engenharia de produção 2º Fase
Recursividade
Recursividade ocorre quando uma função recorre a si mesma.
Durante uma função recursiva, a cada necessidade é feita uma nova ocorrência da função com comandos e variáveis “isolados” das recursões anteriores.
Até que a ocorrência seja resolvida, a função será executada. Porém fazê-la parar é um problema. Se durante o processo houver algum erro, é quase certo que as recursões fiquem repetindo infinitamente, até que se esgote a memória.
Toda recursividade é composta por um caso base e pelas suas chamadas recursivas.
O caso base é o caso mais simples, onde o problema é resolvido facilmente usando uma condição. Já as chamadas recursivas acabam se agrupando com o caso base, pois elas procuram simplificar o problema.
Vantagem
O uso da recursividade é a simplificação do código, tornando-o mais legível e fácil de entender, de maneira clara e limpa.
Desvantagem
Sobre as desvantagens da recursividade podemos citar o grande uso da memória, principalmente quando o número de recursões é muito alto. Muitas vezes outra solução acaba gastando menos memória e com isso passa a ser melhor utilizado do que uma recursão.
Exemplo:
//Cálculo de fatorial com função recursiva
#include
#include
//protótipo da função fatorial
double fatorial(int n);
int main(void)
{
int numero;
double f;
printf("Digite o numero que deseja calcular o fatorial: ");
scanf("%d",&numero);
//chamada da função fatorial
f = fatorial(numero);
printf("Fatorial de %d = %.0lf",numero,f);
getch();
return 0;
}
//Função recursiva que calcula o fatorial
//de um numero inteiro n
double fatorial(int n)
{
double vfat;
if ( n <= 1 )
//Caso base: fatorial de n <= 1 retorna 1
return (1);
else
{
//Chamada recursiva
vfat = n * fatorial(n - 1);
return (vfat);
}
}
Explicação do código:
Neste código, o valor 1 será retornado e a função será encerrada se o número n for menor ou igual a 1, não havendo chamadas de recursão. Se isso não ocorrer, as chamadas recursivas iniciam o processo até ser resolvido o caso mais simples. Por fim, serão dados valores através das chamadas, com o objetivo de resolver o cálculo proposto.
...