关于
lintcode系列,第2题,题目网址:https://www.lintcode.com/problem/digit-counts/description
描述
计算数字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)
思路
直接遍历1~n,暴力求解,通过判断每个数的末尾数字是否为k来计数。
C++实现
class Solution {
public:
/**
* @param k: An integer
* @param n: An integer
* @return: An integer denote the count of digit k in 1..n
*/
int digitCounts(int k, int n) {
// write your code here
int i=1,count=0,b;
if(k==0){
count=1;
}
for(;i<n+1;i++){
b=i;
while(b != 0){
if(b%10 == k){
count++;
}
b = b/10;
}
}
return count;
}
};