CountDiv
题目:
Write a function: function solution($A, $B, $K); that, given three integers A, B and K, returns the number of integers within the range [A..B] that are divisible by K, i.e.: { i : A ≤ i ≤ B, i mod K = 0 } For example, for A = 6, B = 11 and K = 2, your function should return 3, because there are three numbers divisible by 2 within the range [6..11], namely 6, 8 and 10. Assume that: A and B are integers within the range [0..2,000,000,000]; K is an integer within the range [1..2,000,000,000]; A ≤ B. Complexity: expected worst-case time complexity is O(1); expected worst-case space complexity is O(1).
其实就是一个简单的数学题,注意下边界条件就可以了。
要求:
时间复杂度O(1)、空间复杂度为O(1)。
如何解决?
代码:
function solution($A, $B, $K) { // write your code in PHP5.5 $extra = 0; if ($A % $K == 0) { $extra = 1; } $ret = floor($B / $K) - floor($A / $K) + $extra; return intval($ret); }