我对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? Problem statement。
嗯,我相信他们的意思是,K是5或7或20? – 2014-09-04 09:25:15
你能发布问题的原始来源吗?声明让我很困惑。 – nevets 2014-09-04 13:44:46
像这样的问题如何作为程序员而不是数学家来测试你?这很愚蠢。 – 2015-11-24 10:16:17