2020年第十一届蓝桥杯赛题总览

2020年的题就是这些,类型分为两种,分别是结果填空和程序设计,我们每天刷一道题,省赛没问题!

蓝桥杯研究生国赛python多少分能得国奖 蓝桥杯python容易拿奖嘛_蓝桥杯

门牌制作(题目)

(本题总分:5分)


—>【问题描述】

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

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

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

需要依次粘贴字符1、0、1、7,即需要1个 字符0, 2个字符1, 1个字符7。

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


—>【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


解析

通过阅读题干,本题——难度较低

由于是填空题,我们只需要得出一个结果即可。结果为一个整数。可以用数字数字分离,也可以用转换成字符串计数。

为了提高效率,我使用了转换字符串计数。

首先,我们最简单的实现,考虑的是遍历从1~2020个数字,然后依次检索出每个数字,转换成字符串(str())中包含2的个数(这里可以利用Python的内置函数—— .count() ),每次遍历获得2的个数后就将其存在一个计数器中(这里设置为-set),最后遍历完所有的数,输出计数器的值结果即可。


代码

Python代码实现:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/2/24 14:10
# @Author  : 府学路18号车神
# @Email   :yurz_control@163.com
# @File    : Day01.py

num = 2021  # 终点
set = 0     # 计数器
for i in range(1, num):
    res = str(i).count('2')     # 转换遍历的数字 i 成字符串,然后利用内置函数count进行计数
    set += res                  # 将每次计数的2的个数赋值给计数器
print("请问要制作所有的1到2020号门牌,总共需要多少个字符2?", set)

蓝桥杯研究生国赛python多少分能得国奖 蓝桥杯python容易拿奖嘛_Python_02


由此,我们可以快速的出结果为:624