欧几里得算法

阅读量: 20 编辑

欧几里得算法,又被称为辗转相除法,用于求两个数的最大公约数。算法如下:

欧几里得算法

// 爱码岛编程
#include <iostream>
using namespace std;

// 辗转相除法计算最大公约数
int gcd(int a, int b) {
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

int main() {
    int a = 48, b = 18;
    cout << "最大公约数为:" << gcd(a, b) << endl;
    return 0;
}

非递归写法

int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}

或者使用库函数

__gcd(a, b);
爱码岛编程公众号
试卷资料
爱码岛编程小程序
在线刷题
苏ICP备13052010号
©2023 南京匠成信息科技有限公司