Lógica, perguntado por andreiheinze, 2 meses atrás

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.

Anexos:

Soluções para a tarefa

Respondido por brunanizolliguozrqrn
1

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);

}

Perguntas interessantes