【每日一题】备战冲击蓝桥杯国赛——Python程序设计 | Day01 | 门牌制作 | 真题代码解析

举报
府学路18号车神 发表于 2022/03/03 20:36:41 2022/03/03
【摘要】 历经九九八十一难!今天,终于回到学校,才想起去年报考了蓝桥杯Python程序设计【研究生组】(貌似研究生和本科组的Python程序设计几乎每年都差不多),既然钱都花了,不能不努力吧,说干就干,每天刷一道题,话不多说,先刷近两年的题吧,从2020的开始,如果有一起的可以加入我们!!!一起来刷题,冲击国赛!!! 2020年第十一届蓝桥杯赛题总览2020年的题就是这些,类型分为两种,分别是结果填空...

历经九九八十一难!今天,终于回到学校,才想起去年报考了蓝桥杯Python程序设计【研究生组】(貌似研究生和本科组的Python程序设计几乎每年都差不多),既然钱都花了,不能不努力吧,说干就干,每天刷一道题,话不多说,先刷近两年的题吧,从2020的开始,如果有一起的可以加入我们!!!

一起来刷题,冲击国赛!!!


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

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

门牌制作(题目)

(本题总分: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)

在这里插入图片描述
由此,我们可以快速的出结果为:624

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。