我们给出了三个数字,L,R和K.我们需要计算L和R之间的数字(包括两者),它们可以被K整除。
是否可以用O(1)复杂度来解决?
这是一个非常简单的程序,我知道,可以通过循环轻松完成。但我想知道是否有可能应用某种公式或某些东西来直接知道L和R之间可被K整除的数字的数量。
例如,count = (R - L + 1) / K
可能适用于某些情况。
什么吗?
答案 0 :(得分:3)
这是您的解决方案。
quo1=l/k;
quo2=r/k;
rem=l%k;
if(rem==0)
{
count=quo2-quo1+1;
}
else
{
count=quo2-quo1;
}