int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
// 主函数:计算三个数的最大公约数
int fun2(int x, int y, int z) {
// 检查输入是否合法
if (x < 0 || y < 0 || z < 0) {
return -1; // 输入非法,返回-1
}
// 先计算前两个数的最大公约数,然后用这个结果和第三个数继续计算最大公约数
int result = gcd(x, y);
result = gcd(result, z);
return result;
}
int main() {
int a, b, c;
// 检查输入是否成功,并且输入的值都是正数
if (scanf("%d%d%d", &a, &b, &c) != 3 || a < 0 || b < 0 || c < 0) {
printf("-1"); // 输入非法或失败,输出-1
return -1;
}
printf("%d", fun2(a, b, c)); // 输出三个数的最大公约数
return 0;
}
三个数的最大公约数,两个数同样适用,万能方法
最新推荐文章于 2024-07-25 21:13:04 发布