1 条题解
-
0
题解文字教学
求三个数的最大公约数,可以利用欧几里得算法(辗转相除法)逐步求解。两个数的最大公约数定义为
gcd(a, b),通过不断取模计算:当b != 0时,将a替换为b,b替换为a % b;最终a即为gcd(a, b)。三个数的最大公约数可以表示为gcd(gcd(x, y), z),即先求x和y的最大公约数,再用该结果与z求最大公约数。由于输入数据在10^6以内,简单的int类型即可安全计算。
参考代码
#include <bits/stdc++.h> using namespace std; int gcd(int a, int b) { while (b) { int t = a % b; a = b; b = t; } return a; } int main() { int x, y, z; cin >> x >> y >> z; int g = gcd(gcd(x, y), z); cout << g << endl; return 0; }
- 1
信息
- ID
- 8417
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 10
- 已通过
- 6
- 上传者
京公网安备 11011102002149号