ACM — 辗转相除法(Euclidean algorithm)求最大公因数(GCD)

起源

辗转相除法, 又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。

算法示意图

递归法

int getGcd(int a, int b) {
    return b == 0 ? a : getGcd(b, a % b);
}

示例代码

#include 
#include 

int getGcd(int a, int b) {
    return b == 0 ? a : getGcd(b, a % b);
}

int main() {
    int a, b;
    while (scanf("%d%d", &a, &b) != EOF) {
        printf("%d\n", getGcd(a, b));
    }
}

你可能感兴趣的:(acm)