方法1:

代码:
int getdouble1() {
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int min = a > b ? a : b;
while (1)
{
if (min % a == 0 && min % b == 0) {
return min;
}
min++;
}
}
方法2(使用乘法的效率要比方法1使用min++的效率高),所以推荐使用方法2:

代码:
int getdouble2() {
int a = 0;
int b = 0;
int i = 0;
scanf("%d %d", &a, &b);
int min = a > b ? a : b;
for ( i = 1;; i++)
{
if ((min * i) % a == 0 && (min * i) % b == 0) {
return min * i;
}
}
}
本文探讨了两种获取最大公约数的方法,方法1通过连续加1寻找,而方法2利用乘法效率更高。方法2的`getdouble2()`函数通过循环检测倍数来实现。
5万+

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



