OCAC暑期比赛第一场 K题 最大公约数 题解

最大公约数
【题目描述】
给你两个int范围内的正整数,求它们的最大公约数。
【输入格式】
输入的一行包含两个正整数 a 和 b (1<=a,b<=2^31),以空格分隔。
【输出格式】
输出 a 和 b 的最大公约数。
【样例输入】
6 8
【样例输出】
2
【题目分析】
gcd模板题。我们可以用 STL 提供的 __gcd 函数直接进行运算,也可以自己模拟 gcd 函数来写。
自己模拟实现的代码:

#include <bits/stdc++.h>
using namespace std;

int gcd(int a, int b) {
    if (b == 0) return a;
    return gcd(b, a%b);
}

int a, b;

int main() {
    cin >> a >> b;
    cout << gcd(a, b) << endl;
    return 0;
}

 使用 STL 提供的 __gcd 函数实现的代码:

#include <bits/stdc++.h>
using namespace std;

int a, b;

int main() {
    cin >> a >> b;
    cout << __gcd(a, b) << endl;
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/ocac/p/11113456.html