门牌制作(蓝桥杯)

简介: 门牌制作(蓝桥杯)

题目

小蓝要为一条街的住户制作门牌号。

这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。

小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7。

请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int ans = 0, x;
    for (int i = 1; i <= 2020; i++)
    {
        x = i;
        while (x)
        {
            ________________;
        }
    }
    cout << ans;
    return 0;
}

分析

为了计算从1到2020号门牌中总共需要多少个字符'2',我们需要在循环中检查每一位数字是否是'2'。我们可以使用取模运算(%)和整除运算(/)来提取每一位数字。

在空白处,我们需要做的是检查当前位(x % 10)是否为'2',如果是,则增加ans的计数。然后,我们需要将x除以10来移动到下一位数字。

代码

#include <iostream>  
using namespace std;  
  
int main() {  
    int ans = 0;  
    for (int i = 1; i <= 2020; i++) {  
        int x = i;  
        while (x > 0) {  
            int digit = x % 10; // 提取当前位的数字  
            if (digit == 2) {  
                ans++; // 如果当前位是'2',则增加计数  
            }  
            x /= 10; // 移动到下一位数字  
        }  
    }  
    cout << ans;  
    return 0;  
}

java代码

//小蓝要为一条街的住户制作门牌号。
    //
    //这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。
    //
    //小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7。
    //
    //请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?
 
    public static void main(String[] args) {
        int menpai = 2020;
        int count = 0;
        for (int i = 1; i <= menpai; i++) {
            String s = String.valueOf(i);
            int i2 = StringUtils.countMatches(s, "2");
            if (i2 > 0) {
                System.out.println("门牌号===" + s);
                count += i2;
            }
        }
        System.out.println("需要" + count + "个字符 2");
    }


相关文章
|
算法 C语言 C++
【C语言蓝桥杯每日一题】—— 门牌制作
单词分析🙌 题目描述 小蓝要为一条街的住户制作门牌号。 这条街一共有 2020 位住户,门牌号从 1 到 2020编号。 小蓝制作门牌的方法是先制作 0 到 9这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7即需要 1个字符 0,2 个字符 1,1 个字符 7。请问要制作所有的1 到 2020 号门牌,总共需要多少个字符 2?
172 0
|
Java
第十一届蓝桥杯A组省赛填空试题 A: 门牌制作(Java)
第十一届蓝桥杯A组省赛填空试题 A: 门牌制作(Java)
135 0
每日一练蓝桥杯C/C++B组~门牌制作
每日一练蓝桥杯C/C++B组~门牌制作
416 6
门牌制作(蓝桥杯省赛B组)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝要为一条街的住户制作门牌号。 这条街一共有 20202020 位住户,门牌号从 11 到 20202020 编号。 小蓝制作门牌的方法是先制作 00 到 99 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、71、0、1、7,即需要 11 个字符 00,22 个字符 11,11 个字符 77。 请问要制作所有的 11 到 20202020 号门牌,总共需要多少个字符 22?
400 0
|
7月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-992 士兵杀敌(二)
84 1
|
7月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
110 0
|
7月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
86 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-999 数的潜能
85 0
|
7月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-997 粘木棍
92 0
|
7月前
|
机器学习/深度学习 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-996 车的放置
93 0