转载

codility之CountDiv

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); } 
正文到此结束
Loading...