废话不多说,直接上代码:
int main()
{
int m, n;
scanf("%d%d", &m, &n);
int mul = m * n;
int mod = m % n;
if (m == n)//解决当m==n的情况,如果m==n,那么mod==0,将造成程序浮点型错误
printf("%d\n", 2 * m);
else
{
do//辗转相除法
{
m = n;
n = mod;
mod = m % n;
} while (mod);
printf("%d\n", mul / n + n);
}
return 0;
}
【解释在标注上】
有问题请留言。

该代码实现了一个C程序,通过输入两个整数m和n,使用辗转相除法(欧几里得算法)来计算它们的最大公约数(GCD)。如果m等于n,则直接返回2*m,否则在求得GCD后输出乘积除以GCD的结果。程序中特别处理了m等于n的情况,避免浮点型错误。

3377

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



