计算数字 k (0-9)在 0 到 n 中的出现的次数。
Example:
输入k:1 n:10 输出:2
输入k:1 n:13 输出:6
代码如下
int digitCounts(int k, int n) {
int count = 0, p = 0;
if (k == 0 && n >= 0)
{
count++;
}
for (int i = 1; i <= n; i++)
{
p = i;
while (p != 0)
{
if (p % 10 == k)
{
count++;
}
p = p / 10;
}
}
return count;
}
首先判断k=0的情况,若k=0;将计数count自增1;
然后对0-n的每个数进行循环判断;
利用%进行除10取余运算,若余数等于k则计数count自增1
若除以10得到的结果不为0则继续while循环;
比如 123456;
除以10 结果:12345 余数:6
除以10 结果:1234 余数:5
除以10 结果:123 余数:4
除以10 结果:12 余数:3
除以10 结果:1 余数:2
除以10 结果:0 余数:1
结束