问题描述
计算数字k在0到n中的出现的次数,k可能是0~9的一个值。
例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12)
解法
这道题方法很简单,循环一组数,将每个数分解成位(个,十,百位…),然后与目标数字进行对比统计。
代码如下:
public class Solution {
/*
* @param : An integer
* @param : An integer
* @return: An integer denote the count of digit k in 1..n
*/
public int digitCounts(int k, int n) {
// write your code here
int sum = 0;
int temp;
int m;
if(k == 0 ){
sum++;
}
for(int i = 0; i <= n ; i++){
temp = i;
while(temp > 0){
m = temp % 10;
temp = temp / 10;
if(k == m){
sum++;
}
}
}
return sum;
}
};