我猜这是简单的数学,但是我无法弄清楚+我是编码新手。我需要找出x在一个范围内可整除的数字。这是一个示例:我需要找到11到30范围内的数字可以被3整除。答案是7,我已经对其进行了编码:
while (a <= b) {
if (a % 3 == 0) {
c++;
a++;
else {
a++;
}
}
但是,当我检查每个数字时,这对于大型数字来说非常有效。我尝试做
c = (b-a)/3
,但是显然这不适用于所有示例,就像上面的示例一样。因此,能否请您帮我找到一些简单的方程式,可以为我计算出来。我因无法弄清楚这一点而感到非常愚蠢。 最佳答案
在伪代码中:
计算除以3的最小数字,该数字大于a
:c = math.ceil(a / 3) * 3
。
计算除以3的最大数字,该数字小于b
:d = math.floor(b / 3) * 3
。
答案是(d - c) / 3 + 1
。
在11
到30
的示例中,c
是12
,而d
是30
,最终答案是7
。
关于java - x在大数范围内的倍数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26824472/