1. CountDiv 数数有几个 Compute number of integers divisible by k in range [a..b].
package com.code; public class Test05_1 { public static int solution(int A, int B, int K) { // handle 6,8,7 condition // handle 6,11,2 condition // handle 7,12,3 condition if(A%K==0){ return (B-A)/K + 1; }else{ int start = A+(K-A%K); if(start>B){ // handle 7,8,9 condition return 0; }else{ return (B-start)/K+1; } } } public static void main(String[] args) { System.out.println(solution(6, 11, 2)); System.out.println(solution(6, 8, 7)); System.out.println(solution(5, 5, 3)); System.out.println(solution(6, 7, 8)); System.out.println(solution(0, 0, 11)); } } /** 1. CountDiv 数数有几个 Compute number of integers divisible by k in range [a..b]. Write a function: class Solution { public int solution(int A, int B, int 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). */