
假设a和b是两个不全为0的整数,以下代码用C/C++实现了求它们最大公因子的算法(当a和b均为0时,返回-1标记参数错误)。
// find the greatest common factor of a and b
int findGCD(int a, int b) {
if (0 == a && 0 == b) {
return -1;
}
if (a < 0) {
a = -a;
}
if (b < 0) {
b = -b;
}
if (0 == b) {
return a;
}
int q = a/b;
int r = a - q * b;
while (0 != r) {
a = b;
b = r;
q = a/b;
r = a - q * b;
}
return b;
}




近期评论