1. 问题
【例题】循环输入,每组数据给定两个非负整数 a,b,求两者最大公约数
2. 思路


3. 实现
#include <iostream>
/**********************************************************
【例题】循环输入,每组数据给定两个非负整数 a,b,求两者最大公约数
**********************************************************/
int gcd(int a, int b)
{
if (b == 0)
{
return a;
}
else
{
return gcd(b, a % b);
}
}
int main()
{
int a, b;
while (std::cin >> a >> b)
{
int ret = gcd(a, b);
std::cout << ret << std::endl;
}
return 0;
}
4. 最小公倍数
最小公倍数等于两个数的乘积除以最大公约数。
int main()
{
int a, b;
while (std::cin >> a >> b)
{
int ret = gcd(a, b);
std::cout << a / ret * b << std::endl;
}
return 0;
}
参考:
https://blog.youkuaiyun.com/WhereIsHeroFrom/article/details/118272816
本文介绍了一种使用递归方法求解两个非负整数的最大公约数(GCD)的C++实现,并进一步展示了如何利用该结果来计算两数的最小公倍数(LCM)。通过循环输入的方式,程序能够持续接收并处理多组数据。
883

被折叠的 条评论
为什么被折叠?



