关于Codility中的CountDiv问题,我有一个问题。
所给定的问题为:编写一个函数:
class Solution { public int solution(int A, int B, int K); }
给定三个整数 A、B 和 K,返回在区间 [A..B] 内可被 K 整除的整数数量,即:
{ i : A ≤ i ≤ B, i mod K = 0 }
我的代码:
class Solution {
public int solution(int A, int B, int K) {
int start=0;
if (B<A || K==0 || K>B )
return 0;
else if (K<A)
start = K * ( A/K +1);
else if (K<=B)
start = K;
return (B-start+1)/K+ 1;
}
}
我不明白为什么我错了,尤其是在这个测试用例中:
extreme_ifempty
A = 10, B = 10, K in {5,7,20}
WRONG ANSWER
got 1 expected 0
如果 K = 5
,并且使用 i = 10
、A<=i<=B
和 i%k = 0
,那么为什么我应该得到 0 呢?问题陈述。