我想这是简单的数学,但我无法弄清楚+我是编码的新手。我需要找出在一个范围内可以被x整除的数量。这是一个例子:我需要找到11到30范围内有多少数字可以被3整除。答案是7,我已经编码了它:
while (a <= b) {
if (a % 3 == 0) {
c++;
a++;
else {
a++;
}
}
然而,当我检查每一个数字时,这对于大数字来说非常糟糕。我尝试了c = (b-a)/3
,但显然这对所有示例都不起作用,就像它不适用于上面那样。那么,请你帮我找一些简单的方程式来计算这个。我觉得因为无法解决这个问题而感到非常愚蠢。
答案 0 :(得分:2)
在psudo-code中:
a
:c = math.ceil(a / 3) * 3
。b
:d = math.floor(b / 3) * 3
。(d - c) / 3 + 1
。在11
到30
的示例中,c
为12
,d
为30
,最终答案为{{ 1}}。
答案 1 :(得分:0)
你很亲密!做一些事情(不知道你在编码什么,所以这将是伪代码):
function numDiv(int a, int b, int divBy) {
int x;
if(a>b) x=1+a-b;
else x=1+b-a;
return floor(x/divBy);
}
地板和+1会让你到那里。