以 O(1) 复杂度计算给定范围内数字的倍数?

Count multiple of a number in a given range with O(1) complexity?

给定L、R、K三个数,我们需要统计L和R之间(包括两者)能被K整除的数。

是否可以用 O(1) 复杂度求解?

我知道这是一个非常简单的程序,可以很容易地用一个循环来完成。但是我想知道是否可以应用某种公式或其他东西来直接知道L和R之间可被K整除的数字的数量。

例如,count = (R - L + 1) / K 可能在某些情况下有效。

有什么吗?

这是您的解决方案。

 quo1=l/k;
 quo2=r/k;
 rem=l%k;
 if(rem==0)
 {
   count=quo2-quo1+1;
 }
 else
 {
    count=quo2-quo1;
  }