【每日一题】备战冲击蓝桥杯国赛——Python程序设计 | Day11 | 卡片 | 真题代码解析

💖作者简介:大家好,我是车神哥,府学路18号的车神🥇
⚡About—>车神:从寝室实验室快3分钟,最慢3分半(那半分钟其实是等绿
📝个人主页:车手只需要车和手,压力来自论文_府学路18号车神_CSDN博客
🥇 官方认证:人工智能领域优质创作者
🎉点赞评论收藏 == 养成习惯一键三连)😋

⚡希望大家多多支持🤗~一起加油 😁


今天是2021年省赛的第一题,大家加油啊!~

每天刷一道题,话不多说,先刷近两年的题吧,从2020的开始,如果有一起的可以加入我们!!!

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


扫码 我的主页 网页左边 群二维码

加入方式:可以在下方的微信名片加我,然后拉你入群。(记得备注暗号我要拿国奖


2021年第十二届蓝桥杯赛题总览

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

卡片(题目)

(本题总分:5分)

官方练习系统:https://www.lanqiao.cn/problems/1443/learning/


—>【问题描述】

小蓝有很多数字卡片,每张卡片上都是数字 00 到 99。 小蓝准备用这些卡片来拼一些数,他想从 11 开始拼出正整数,每拼一个, 就保存起来,卡片就不能用来拼其它数了。 小蓝想知道自己能从 11 拼到多少。 例如,当小蓝有 3030 张卡片,其中 00 到 99 各 33 张,则小蓝可以拼出 11 到 1010, 但是拼 1111 时卡片 11 已经只有一张了,不够拼出 1111。 现在小蓝手里有 00 到 99 的卡片各 20212021 张,共 2021020210 张,请问小蓝可以从 11 拼到多少? 提示:建议使用计算机编程解决问题

—>【结果描述】

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。


解析


通过阅读题干,本题——难度简单:⭐

考察类型:暴力、填空

考察知识点:字典、枚举


分析:

根据题干来看,很简单了。如果说我们直接暴力,判断用过一张数字之后就减少一张,这样一直试探循环,简单粗暴!

下面直接开干!!!


代码

Python代码实现:
法一:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/3/5 20:01
# @Author  : 府学路18号车神
# @Email   :yurz_control@163.com
# @File    : Day11.py

# 2021张从0~9的数,共计20210张
n = 2021
number = ['0','1','2','3','4','5','6','7','8','9']  # 十个数字字符
num = {}  # 利用字典
for i in number:
    if i not in num:
        num[i] = n
print(num)      # {'0': 2021, '1': 2021, '2': 2021, '3': 2021, '4': 2021, '5': 2021, '6': 2021, '7': 2021, '8': 2021, '9': 2021}



# 循环迭代
res = 0      # 设置计数器
stop = 0     # 设置出口标识符
while True:
    if stop == 1:
        break   # 设置出口
    # 组合数字
    res += 1    # 开始叠加
    res_str = [x for x in str(res)]      # 将数字转化字符,再将数字分离多个字符
    print(res_str)      # 如:['1', '2']
    # 查找删除字典内的数字
    for y in res_str:
        if y in num:
            num[y] -= 1                       # 如果包含一个数字,则删除一个
    if 0 in num.values():                     # 如果num里面有一个数字的值为0,也就是说用完了,那么就停止计算,设置停止条件
        stop = 1

print(res)      # 可以拼到数字3181

示例1:
在这里插入图片描述
法二:

num=0  #用num用来累计用过的数字“1”的次数
for i in range(1,10000):
       num+=str(i).count("1")  #出现过几次1就 给num加上多少
       if num>2021:  #当num数量超过2021时卡牌数量不足
              break
print(i-1)

在这里插入图片描述
速度都很快哦~

可以得出最终的结果为:3181

今天2021年省赛第一题,加油!

由此,我们可以快速得出结果,验证完毕!


今天开刷第 十一 天,难度一般般,欢迎大家加入,一起变强,一起自律,一起上国赛!!!

今天的题目一般哈,有不同解法的可以在下面留言哦!~

往期刷题路线:

刷题路线Detail
2020年
Day-01门牌制作
Day-02寻找2020
Day-03跑步锻炼
Day-04蛇形填数
Day-05排序
Day-06装饰珠
Day-07成绩统计
Day-08单词分析
Day-09数字三角形
Day-10平面切分
2021年

官方刷题练习系统:http://lx.lanqiao.cn/


❤坚持读Paper,坚持做笔记,坚持学习,坚持刷力扣LeetCode❤!!!
坚持刷题!!!冲击国赛
To Be No.1

⚡⚡


创作不易⚡,过路能❤关注收藏点个赞三连就最好不过了

ღ( ´・ᴗ・` )

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
蓝桥杯是中国著名的计算机竞赛,其中包含了多个不同的竞赛项目,其中也包括了Python真题Python真题是指在比赛中需要使用Python编程语言完成的题目。通常这些题目旨在考察参赛者对Python语法、基本数据结构和算法的理解与掌握。 在Python真题中,常见的题型包括但不限于以下几种: 1. 简单的输出题:要求参赛者编写Python代码,输出指定的结果。这类题目主要考察对基本语法的掌握和对输出格式的处理能力。 2. 数据处理题:给出一定规模的数据,要求参赛者编写Python代码进行相应的数据处理和运算。这类题目主要考察对Python基本数据结构(如列表、字典、字符串等)和控制流程(如循环、条件判断等)的掌握。 3. 算法设计题:给出一定的问题描述,要求参赛者设计一个Python函数或类来解决该问题。这类题目主要考察对算法的理解与应用能力,包括对递归、动态规划、贪心算法等常见算法思想的应用。 完成Python真题需要参赛者具备一定的编程基础和对Python语言的熟悉程度。因此,在备战蓝桥杯的过程中,建议参赛者通过刷题、练习和项目实践等方式提升编程能力,并深入学习Python语言的特性和常用库的使用。同时,了解和掌握各类常见的算法思想和数据结构,对于解决复杂的Python真题问题很有帮助。 总之,通过积极学习和不断练习,参赛者可以在蓝桥杯Python真题中展示自己的编程实力,并提升自己在计算机科学领域的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

府学路18号车神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值