题目要求
计算数字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 int digitCounts(int k, int n) {
int count = 0;
for (int i = 0; i <= n; i++) {
int m = i;
while (m / 10 != 0) {
int y = m % 10;
if (y == k) {
count++;
}
m = m / 10;
}
if (m == k){
count++;
}
}
return count;
}
个人感觉该算法有点麻烦,有更好的方法麻烦告之~~~
网友评论