我猜这是简单的数学,但是我无法弄清楚+我是编码新手。我需要找出x在一个范围内可整除的数字。这是一个示例:我需要找到11到30范围内的数字可以被3整除。答案是7,我已经对其进行了编码:

while (a <= b) {
    if (a % 3 == 0) {
        c++;
        a++;
    else {
        a++;
    }
}


但是,当我检查每个数字时,这对于大型数字来说非常有效。我尝试做c = (b-a)/3,但是显然这不适用于所有示例,就像上面的示例一样。因此,能否请您帮我找到一些简单的方程式,可以为我计算出来。我因无法弄清楚这一点而感到非常愚蠢。

最佳答案

在伪代码中:


计算除以3的最小数字,该数字大于
ac = math.ceil(a / 3) * 3
计算除以3的最大数字,该数字小于
bd = math.floor(b / 3) * 3
答案是(d - c) / 3 + 1


1130的示例中,c12,而d30,最终答案是7

关于java - x在大数范围内的倍数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26824472/

10-12 22:27