Digit Counts
Count the number of k's between 0 and n. k can be 0 - 9.
Example
if n = 12
, k = 1
in
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
we have FIVE 1's (1, 10, 11, 12)
分析:
利用while 循环 + num % 10可以获取 num中的所有数字。
class Solution { /* * param k : As description. * param n : As description. * return: An integer denote the count of digit k in 1..n */ public int digitCounts(int k, int n) { int totalCount = 0; for (int i = 0; i <= n; i++) { totalCount += counts(k, i); } return totalCount; } public int counts(int k, int value) { int count = 0; if (value == 0 && k == 0) return 1; while (value != 0) { int remainder = value % 10; if (remainder == k) { count++; } value = value / 10; } return count; } };