欧几里得算法

描述:计算两个非负整数p和q的最大公约数:若q是0,则最大公约数为p。否则,将p除以q得到余数r,p和q的最大公约数即为q和r的最大公约数。

算法必须满足a大于或等于b

java语言:

public static int gcd(int a, int b){
        if(a < b){
            int c = b;
            b = a;
            a = c;
        }
        if(b == 0){
            return a;
        }
        return gcd(b, a % b);
}

 

 不用递归的算法:

public static int gcd(int a, int b) {
    int t, c;
    if(a < b) {
        t = a;
        a = b;
        b = a;
    }
    while(b != 0) {
        c = a % b;
        a = b;
        b = c;
    }
    return b;
}

 

posted @ 2016-09-11 12:34  曹某某的博客  阅读(158)  评论(0)    收藏  举报