ACM — 展轉相除法(Euclidean algorithm)求最大公因數(GCD)

起源

展轉相除法, 又名歐幾里德算法(Euclidean algorithm)乃求兩個正整數之最大公因子的算法。算法

算法示意圖

圖片描述

遞歸法

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

示例代碼

#include <stdio.h>
#include <math.h>

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));
    }
}
相關文章
相關標籤/搜索