Estudando recursividade direta e indireta
Uma rápida explicação e demonstração de como funciona a recursividade para programas em C especialmente, usando como exemplo o algoritmo de Euclides para o cálculo do MDC.
Parte 2: Recursividade direta ou simples
A recursividade simples é a mais comum em programas, pois é mais simples de se usar e seu resultado é mais previsível, além disso é mais difícil estourar a pilha de memória usando-a.
Para sem mais específico, a recursividade simples é aquela apresentada no algoritmo de Euclides na página 1 - Introdução. A recursividade simples é quando uma função chama a si mesma fazendo com isso um loop. Deve se tomar muito cuidado para não se criar com isso um loop infinito.
Exemplo do código em C:
Para sem mais específico, a recursividade simples é aquela apresentada no algoritmo de Euclides na página 1 - Introdução. A recursividade simples é quando uma função chama a si mesma fazendo com isso um loop. Deve se tomar muito cuidado para não se criar com isso um loop infinito.
Exemplo do código em C:
/*Algoritmo de Euclides para cálculo do MDC*/
#include <stdio.h>
/*include*/
int mdc(int,int);
/*protótipo de função*/
int main(void)
{
int valorA, valorB;
printf("\n\nDigite os valores (valor,valor): ");
scanf("%d,%d",&valorA,&valorB);
printf("\nO valor do MDC é %d. \n",mdc(valorA,valorB));
return 0;
}
/*fim de main*/
int mdc(int valorA, int valorB)
{
if(!valorB)
return valorA;
else
return mdc(valorB, valorA%valorB);
}
/*função de cálculo do mdc*/
#include <stdio.h>
/*include*/
int mdc(int,int);
/*protótipo de função*/
int main(void)
{
int valorA, valorB;
printf("\n\nDigite os valores (valor,valor): ");
scanf("%d,%d",&valorA,&valorB);
printf("\nO valor do MDC é %d. \n",mdc(valorA,valorB));
return 0;
}
/*fim de main*/
int mdc(int valorA, int valorB)
{
if(!valorB)
return valorA;
else
return mdc(valorB, valorA%valorB);
}
/*função de cálculo do mdc*/
Abraços