我编写了以下函数来计算浮点数的 GCD,但是当我为输入 (111.6, 46.5) 运行此函数时,函数中 fmod(a,b) 的计算在 2 次递归调用后开始给出错误的结果。我在这里找不到错误。谁能找到这里出了什么问题?
float gcd(float a, float b){
if (a>b) {
if(b==0){
return a;
}
else {
return gcd(b, fmod(a,b));
}
}
else {
if (a==0) {
return b;
}
else {
return gcd(fmod(b,a), a);
}
}
}