给定一个正整数n,判断从1到n的这n个数中,一共出现了几次数字k(c++)
1个回答
关注
展开全部
咨询记录 · 回答于2023-07-22
给定一个正整数n,判断从1到n的这n个数中,一共出现了几次数字k(c++)
亲您好,很高兴为您解答:给定一个正整数n,判断从1到n的这n个数中,一共出现了几次数字k(c++)的解决办法如下:1.通过循环,从个位、十位、百位...依次遍历n的每一位,记录当前位的数字为weight。2.分别计算当前位之前的高位部分(round)和低位部分(n % base)出现k的次数,并累加到count中。对于当前位weight:3.如果weight大于k,则说明当前位出现了k个数字,直接累加base(表示0-9的个数)到count中。4.如果weight等于k,则说明当前位出现了k个数字,但是要考虑低位部分(n % base)的数字。5.如果k为0且round为0,则当前位的数字不能为0,需要减去base(表示0-9的个数)。通过这样的思路,我们可以依次计算从1到n的每一位数字出现k的次数,然后累加得到最终结果。