java大数范围内x的倍数
我想这是一个简单的数学问题,但我就是搞不懂+我对编码还不熟悉。我需要找出在一个范围内有多少个数字可以被x整除。举个例子:我需要找出11到30之间有多少数字可以被3整除。答案是7,我已经编码好了:
while (a <= b) {
if (a % 3 == 0) {
c++;
a++;
else {
a++;
}
}
然而,当我检查每一个数字时,这对大的数字非常有效。我试过做c = (b-a)/3
,但显然这并不适用于所有示例,就像上面的示例一样。所以,你能帮我找到一个简单的方程,可以为我计算这个。我觉得自己太蠢了,没能搞清楚这件事
# 1 楼答案
在psudo代码中:
a
:c = math.ceil(a / 3) * 3
李>b
:d = math.floor(b / 3) * 3
李>(d - c) / 3 + 1
李>在
11
到30
的例子中,c
是12
,而d
是30
,最后的答案是7