AGRADECIMENTO...

Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.

Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...

Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.

As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.

Desde já agradeço a todos pelas visitas e desejo bons estudos.

Thiago Campos
(srthiago@hotmail.com)

quinta-feira, 13 de setembro de 2012

Cálculo do MDC utilizando função recursiva e JOptionPane.


Escreva uma função recursiva para calcular o máximo divisor comum de dois números inteiros positivos da seguinte maneira:
 Mdc(x, y) = y                         se ( y≤ x) e x mod y = 0;
 Mdc(x,y) = Mdc(y, x)             se (x < y);
 Mdc(x,y) = Mdc(y, x mod y)   caso contrário


Código Java

//Autor: Thiago Campos
//Data: 12.09.2012

import javax.swing.JOptionPane;

/**
 *
 * @author Thiago
 */
public class Mdc {
    public static void main(String[] args){
        //variaveis
        Mdc f = new Mdc(); //instanciando a variavel f
        int x, y;
       
        //entrada dos dados
        x = Integer.parseInt(JOptionPane.showInputDialog("Informe x:"));
        y = Integer.parseInt(JOptionPane.showInputDialog("Informe y:"));
       
        //saida dos dados
        JOptionPane.showMessageDialog(null, "O MDC é: " + f.mdc(x,y));
    }//fim do main
/*------------------------------------------------------------------------------
 *                           FUNÇÃO RECURSIVA - MDC
 -------------------------------------------------------------------------------*/
    public int mdc(int x, int y){
        if (x<=y || x%y==0){ //condição de parada
            return y;
        }else{
            if(x<y){
                return mdc(x,y);
            }else{
                return mdc(y, x%y);
            } //fim do else  
        } //fim do 2º if
    } // fim da função 
} //fim da classe

2 comentários:

  1. Codigo em C

    #include
    int mdc (int x, int y){
    if(y<=x && x%y==0)
    return y;
    else
    if (x<y)
    return mdc(y,x);
    else
    return mdc(y,x%y);
    }
    int main (){
    int a,b,i;
    printf("Digite dois numeros inteiros:");
    scanf("%d %d", &a, &b);
    printf("MDC(%d , %d)= %d \n", a, b, mdc(a,b));
    return 0;
    }

    ResponderExcluir
    Respostas
    1. Não entendi a postagem, acho que você quis mostrar como ficaria em C. Sendo assim, lembro-lhe apenas que este código (o meu) poderia ficar menor mas que optei por uma forma mais fácil para compreensão dos iniciantes.

      Excluir