我正在解决一个问题
查找小于等于A且可被整除的总数B和C。
我已经编写了以下函数来进行计算
public int solve(int A, int B, int C) {
if(B==C){
return A/B;
}else{
return A/(B*C);
}
}
尽管这给了我正确答案,但是容易溢出;我怀疑当我们将b和c相乘时。我无法理解如何纠正此功能以克服溢出问题。
我不是在寻找具体答案,但对了解更为感兴趣
您的实现是不正确。反例:
A = 100
B = 10
C = 8
期望:2(40
和80
)实际:1(A / (B * C) == 100 / 80 == 1
)
正确的公式是
A / (B * C / gcd(B, C))