注册 登录
编程论坛 JAVA论坛

求最大公约数问题

我叫小黑 发布于 2015-05-24 17:07, 525 次点击
static void MaxGongyueshu(int m,int n)
    {
        int min;
        min = m%n;
        if(min != 0)
        {
            min = n%min;
            if(min == 0)
            {
                System.out.println("最大公约数为"+min);
            }
        }
        else
        {
            System.out.println("最大公约数为"+n);
        }
    }


有一小部分不对,应该怎么改?大牛们
4 回复
#2
林月儿2015-05-24 17:24
int min;下面这段改成这样?
        if(m<n){
            m=m^n;n=m^n;m=m^n;
        }
        min = m%n;
        if(min != 0)
        {
            MaxGongyueshu(n,min);
        }
         else
        {
            System.out.println("最大公约数为"+n);
        }
    }
#3
我叫小黑2015-05-24 18:43
回复 2楼 林月儿
功能可以实现,谢谢月儿大牛
#4
一条沙丁鱼2015-05-25 22:28
//写成这样也可以吧
public int gcd2(int m ,int n){
        if(m<n){
            int temp = 0;
            temp = m;
            m = n;
            n = temp;
        }
        int yushu = 0;
        if(m%n==0){
            return n;
        }else{
            yushu = m%n;
            m = n;
            n = yushu;
        }
        return yushu;
    }
#5
逆水寒刘2015-05-26 18:19
public static int com(int a, int b){
    int temp;
    if(a<b){ temp=b;b=a;a=temp;}
    while(b!=0){
        temp=a%b;
        a=b;
        b=temp;
    }
    return a;
}
1