计算数字 k (0-9)在 0 到 n 中的出现的次数

计算数字 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
结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值