计算数字 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
结束
本文介绍了一种算法,用于计算特定数字k在从0到n的整数范围内出现的总次数。通过遍历0到n之间的每一个数,并检查每一位是否等于k来实现。特别地,对于k=0的情况进行了额外处理。
2393

被折叠的 条评论
为什么被折叠?



