自学内容网 自学内容网

蓝桥杯之门牌

问题:

这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。 小蓝制作门牌的方法是先制作 0 到9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7。请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符?

要解决这个问题,我们需要统计从1到2020的所有门牌号中数字字符2出现的总次数。可以通过遍历每个门牌号,分解其每一位数字并检查是否为2来实现。

方法思路

  1. 遍历每个门牌号:从1到2020逐个处理每个门牌号。

  2. 分解每一位数字:对于每个门牌号,通过取余和整除操作分解其每一位数字。

  3. 统计数字2的出现次数:检查每一位数字是否为2,如果是,则计数器加1。

#include <stdio.h>

int main() {
    int count = 0;
    for (int i = 1; i <= 2020; i++) {
        int num = i;
        while (num > 0) {
            int digit = num % 10;
            if (digit == 2) {
                count++;
            }
            num /= 10;
        }
    }
    printf("%d\n", count);
    return 0;
}

代码解释

  1. 初始化计数器count变量初始化为0,用于累计数字2的出现次数。

  2. 遍历门牌号:使用for循环从1遍历到2020。

  3. 分解数字:对于每个门牌号i,使用while循环分解其每一位数字。通过取余操作num % 10获取当前位的数字,然后通过整除操作num /= 10处理下一位。

  4. 检查是否为2:如果当前位的数字是2,则计数器count加1。

  5. 输出结果:循环结束后,打印计数器的值,即数字2的总出现次数。

 

 

 


原文地址:https://blog.csdn.net/Cao123456789321/article/details/147163345

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!