我對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