//greatest common divisor
int gcd(int x, int y)
{
if (x < 0)
x = -x;
if (y < 0)
y = -y;
int min = x;
if (y < x)
min = y;
while (min)
{
if (x % min == 0 && y % min == 0)
{
break;
}
--min;
}
return min;
}
int gcd(int x, int y)
{
if (x == 0 || y == 0)
return 0;
if (x < 0)
x = -x;
if (y < 0)
y = -y;
int max = x, min = y;
if (x < y)
{
max = y;
min = x;
}
while (min != 0)
{
int rem = max % min;
max = min;
min = rem;
}
return max;
}
int gcd(int x, int y)
{
if (x == 0 || y == 0)
return 0;
if (x < 0)
x = -x;
if (y < 0)
y = -y;
int max = x, min = y;
if (x < y)
{
max = y;
min = x;
}
while (min != 0)
{
int dif = max - min;
max = min;
min = dif;
}
return max;
}
我不确定,对于计算两个数的最大公倍数时,需补需要考虑到0和负数的情况。可以看情况而定,如果确认不会又0和负数,则可以省略前的某些处理。