Calcular o Máximo Divisor Comum - MDC é encontrar o maior número inteiro que divide outros números inteiros ao mesmo tempo. Por exemplo, se considerar os números 82 e 34, o MDC será 2, pois 2 é o maior número que divide ambos ao mesmo tempo.
Entenda o processo utilizando o método numérico de divisões sucessivas:
IMAGEM
Seu Desafio é desenvolver somente a função recursiva em Linguagem C para solucionar o problema do cálculo do MDC, indicando quais seriam os seus parâmetros e o seu corpo. Não esqueça de determinar o critério de parada da função, isto é, até quando as divisões sucessivas devem ocorrer.
Fique atento! Não é necessário escrever o programa todo.
1) Parâmetros da função:a função recursiva deve receber dois parâmetros (os valores dos dois números que se deseja calcular o MDC, em que a>b). Então, ela teria a seguinte estrutura:
int calcularMDC (int a, int b){
//comandos
}
2) Critério de parada da função: ocorre quando a função verifica se o resto da divisão é 0. Assim:
r = a % b;
if (r==0)
return b;
Nesse caso, a função retorna o valor do divisor, pois ele é o MDC.
3) Passo recursivo: indica o que fazer quando a estrutura condicional do ponto de parada não é estabelecida. Nesse caso, as divisões sucessivas continuam e agora o divisor da operação anterior torna-se o dividendo; e o resto, o divisor:
else
return calcularMDC(b,r);
Portanto, a função recursiva para o cálculo do MDC entre dois números é:
Lista de comentários
Resposta:
Explicação:
1) Parâmetros da função:a função recursiva deve receber dois parâmetros (os valores dos dois números que se deseja calcular o MDC, em que a>b). Então, ela teria a seguinte estrutura:
int calcularMDC (int a, int b){
//comandos
}
2) Critério de parada da função: ocorre quando a função verifica se o resto da divisão é 0. Assim:
r = a % b;
if (r==0)
return b;
Nesse caso, a função retorna o valor do divisor, pois ele é o MDC.
3) Passo recursivo: indica o que fazer quando a estrutura condicional do ponto de parada não é estabelecida. Nesse caso, as divisões sucessivas continuam e agora o divisor da operação anterior torna-se o dividendo; e o resto, o divisor:
else
return calcularMDC(b,r);
Portanto, a função recursiva para o cálculo do MDC entre dois números é:
int calcularMDC (int a, int b){
r = a % b;
if (r==0)
return b;
else
return calcularMDC(b,r);
}