求最大公因数的两种数学方法

1. 更相减损术

可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。
——《九章算术》

int gcd(int a, int b) {
    if (a > b)
        return gcd(a-b, b);
    if (a < b)
        return gcd(b-a, a);
    return a;
}

2. 辗转相除法

int gcd(int a, int b) {
    if (a%b == 0)
        return b;
    if (a > b)
        return gcd(b, a%b);
    if (a < b)
        return gcd(a, b%a);
    return a;
}
上一篇:C语言之复合赋值运算符


下一篇:“21天好习惯”第一期—4