【蓝桥杯简单篇】Python组刷题日寄Part05

news2025/1/15 6:55:20

刷题日记?刷题日寄!
萌新备战蓝桥杯python组
🌹 发现有需要纠正的地方,烦请指正!
🚀 欢迎小伙伴们的三连+关注!

往期系列:
【蓝桥杯简单篇】Python组刷题日寄Part01

【蓝桥杯简单篇】Python组刷题日寄Part02

【蓝桥杯简单篇】Python组刷题日寄Part03

【蓝桥杯简单篇】Python组刷题日寄Part04

简单篇05

【蓝桥杯简单篇】Python组刷题日寄Part05

  • 第01题:计算器
  • 第02题:色盲的民主
  • 第03题:聪明的美食家
  • 第04题:统计单词数
  • 第05题:笨小猴
  • 第06题:素数求和
  • 第07题:利息计算
  • 第08题:五次方数
  • 第09题:分数统计
  • 第10题:不同单词个数统计

第01题:计算器

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
王小二的计算器上面的LED显示屏坏掉了,于是他找到了在计算器维修与应用系学习的你来为他修计算器。
屏幕上可以显示0~9的数字,其中每个数字由7个小二极管组成,各个数字对应的表示方式如图所示:
在这里插入图片描述
为了排除电路故障,现在你需要计算,将数字A变为数字B需要经过多少次变换?
注意:现在将其中每段小二极管的开和关都定义为一次变换。例如数字1变为2是5次操作。
输入描述:
第一行为一个正整数L,表示数码的长度。
接下来两行是两个长度为L的数字A和B,表示要把数字A变成数字B(数字可以以0开头)。
数据范围:L< =100
输出描述:
一行一个整数,表示这些小二极管一共要变换多少次。
样例输入:
3
101
025
样例输出:
12


答案:

分析:
将7段二极管的开关定义为1或0,这样就用一个字符串表示每个数字的状态,之后逐个对比即可。

l = int(input())
num01 = input()
num02 = input()

lis = ['1110111', '0010010', '1011101', '1011011', '0111010',
       '1101011', '1101111', '1010010', '1111111', '1111011']

count = 0
for i in range(l):
    a = int(num01[i])
    b = int(num02[i])
    if a != b:
        for j in range(7):
            if lis[a][j] != lis[b][j]:
                count += 1

print(count)

第02题:色盲的民主

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
n个色盲聚在一起,讨论一块布的颜色。尽管都是色盲,却盲得各不相同。每个人都有自己的主张,争论不休。最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同意。某种颜色用字符串表示(字符串为颜色单词或词组,也就是可能有被空格隔开的两个单词组成的颜色词组),只要字符串不同,程序即判断颜色不同。现在给出这n个人所选择的颜色,输出最有可能的颜色(也就是获得投票最多的颜色),如果有多个颜色获得了最多的投票,则将它们按字典序分行全部输出。
输入描述:
第一行一个正整数n,表示色盲的人数
接下来n行,每行一句话
数据规模和约定
n<=1000
颜色单词最多20个字符,只包含小写字母或者空格
输出描述:
若干行,获得投票最多的颜色,按字典序输出
样例输入:
5
red
blue
black
black
blue
样例输出:
black
blue


答案:

分析:
利用集合去重,然后利用列表的 count 方法统计元素数量,随后查找对应颜色,按顺序输出。

n = int(input())
lis = []
for i in range(n):
    lis.append(input())

color = list(set(lis))  # 利用集合去重
num = []                # 统计颜色出现数量
for i in color:
    num.append(lis.count(i))
result = []

for i in range(len(num)):       # 统计出现次数最多的颜色
    if num[i] == max(num):
        result.append(color[i])

result.sort()           # 排序
for i in result:
    print(i)

第03题:聪明的美食家

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
如果有人认为吃东西只需要嘴巴,那就错了。
都知道舌头有这么一个特性,“由简入奢易,由奢如简难”(据好事者考究,此规律也适合许多其他情况)。具体而言,如果是甜食,当你吃的食物不如前面刚吃过的东西甜,就很不爽了。
大宝是一个聪明的美食家,当然深谙此道。一次他来到某小吃一条街,准备从街的一头吃到另一头。为了吃得爽,他大费周章,得到了各种食物的“美味度”。他拒绝不爽的经历,不走回头路而且还要爽歪歪(爽的次数尽量多)。
输入描述:
两行数据。
第一行为一个整数n,表示小吃街上小吃的数量
第二行为n个整数,分别表示n种食物的“美味度”

数据规模和约定:
美味度为0到100的整数
n< 1000
输出描述:
一个整数,表示吃得爽的次数
样例输入:
10
3 18 7 14 10 12 23 41 16 24
样例输出:
6


答案:

分析:
本题实际是求最长不下降子序列的长度。利用动态规划思想,具体思路见代码注释。

n = int(input())
lis = list(map(int, input().split()))
lis.insert(0, 0)            # 初始相当于先吃一个为美味度0的
dp = [0 for i in range(n+1)]
# dp[i] 表示前i+1个元素的序列中 最长不下降子序列的长度
# dp[0] = 0, 因此初始都赋值为0
for i in range(1, n+1):
    temp = []
    for j in range(i):
        if lis[j] <= lis[i]:
            # 如果第 j+1 个小于第 i+1 个
            temp.append(dp[j]+1)
            # 那么爽的次数+1
    dp[i] = max(temp)
print(max(dp))

第04题:统计单词数

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
统计输入英文文章段落中不同单词(单词有大小写之分,  但统计时忽略大小写)各自出现的次数。 输入段落中所含单词的总数不超过100,最长单词的长度不超过20个字母.
输入描述:
一个包含若干句子的段落, 每个句子由若干英文单词组成. 除空格,  逗号和句号外, 这些输入的句子中不含其他非字母字符, 并且, 逗号和句号紧跟在它前面的英文单词后面, 中间没有空格. 段落最后一个字符是回车符,  表示输入结束.
输出描述:
若段落中共有M个不同的英文单词,则按照其在段落中出现的先后顺序输出M行,各行的格式为:  单词中所有字母均用大写形式输出(最长的单词顶格输出,它前面没有多余的空格;  其余单词与其右对齐)+冒号+N个*号+该单词在段落中的出现次数N
样例输入:
This is a test. This test is easy. This is a test. This test is easy.
样例输出:

THIS:****4
  IS:****4
   A:**2
TEST:****4
EASY:**2

答案:

分析:
字符串的 strip(), split(), upper() 方法;列表的 count() 方法;格式化输出。

s = input().strip().split()
word = []
L = 0
for i in range(len(s)):
    s[i] = s[i].strip('.')
    s[i] = s[i].strip(',')
    s[i] = s[i].upper()
    if s[i] not in word:
        word.append(s[i])
L = max([len(i) for i in word])
for i in word:
    num = s.count(i)
    print('{1:>{0:}}:'.format(L, i)+'*'*num+str(num))

第05题:笨小猴

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!
这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。
输入描述:
输入文件只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。
输出描述:
输出文件共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。
样例输入:
error
样例输出:
Lucky Word
2


答案:

分析:
略。

s = list(input())
num = []
for i in set(s):
    num.append(s.count(i))
result = max(num) - min(num)

def prime(n):
    if n <= 1:
        return False
    else:
        for i in range(2, n):
            if n%i == 0:
                return False
        return True

if prime(result):
    print('Lucky Word')
    print(result)
else:
    print('No Answer')
    print('0')

第06题:素数求和

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
输入一个自然数n,求小于等于n的素数之和
输入描述:
数据规模和约定
测试样例保证 2 < = n < = 2,000,000
输出描述:

样例输入:
2
样例输出:
2


答案:

分析:
如果遍历每个小于等于n个数,判断其是否为质数,运算时间过长,会超时。
这里采用埃拉托色尼筛选法,即每找到一个质数,都将其的倍数从遍历列表中删去,这样便减少了计算量。代码中可以用 bool 运算符表示其是否在遍历列表中。具体见代码注释。

n = int(input())

def prime(n):
    # 判断是否为质数
    for i in range(2, n//2+1):
        if n%i == 0:
            return False
    return True

primes = [True for i in range(n+1)]
# 表示是否为遍历列表中,即是否为质数
# 因为实际计算中用不到0和1,这里也就不用再将其置为False
result = 0
for i in range(2, n+1):
    # 从第一个质数2开始
    if primes[i]:
        # 如果是质数, 即 primes[i]==True
        for j in range(i*2, n+1, i):
            # 将这个质数的倍数都置为False
            primes[j] = False
        result += i
print(result)      

第07题:利息计算

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
编制程序完成下述任务:接受两个数,一个为用 户一年期定期存款金额,一个为按照百分比格式表示的利率;程序计算一年期满后本金与利息总额。说明:
(1)存款金额以人民币元为单位,可能精确到分;
(2)输入利率时不需要输入百分号,例如一年期定期存款年利率为2.52%,用户输入2.52即可;
(3)按照国家法律,存款利息所得需缴纳20% 的所得税,计算结果时所得税部分应扣除。
输入描述:
输入一行,包含两个实数,分别表示本金和年利率。
输出描述:
输出一行,包含一个实数,保留到小数点后两位,表示一年后的本金与利息和。
样例输入:
10000 2.52
样例输出:
10201.60


答案:

分析:
略。

money, rate = map(float, input().split())
print('{:.2f}'.format(money*(1+rate*0.01*0.8)))

第08题:五次方数

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
对一个数(大于1)十进制表示时的每一位数字乘五次方再求和,会得到一个数的五次方数
例如:1024的五次方数为1+0+32+1024=1057
有这样一些神奇的数,它的五次方数就是它自己,而且这样的数竟然只有有限多个
从小到大输出所有这样的数
输入描述:

输出描述:
每个数独立一行输出
样例输入:

样例输出:


答案:

分析:
要提前判断大致边界。

for i in range(2, 299999):
    temp = 0
    for j in str(i):
        temp += int(j)**5
    if temp == i:
        print(i)

第09题:分数统计

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
给定一个百分制成绩T,将其划分为如下五个等级之一:
90~100A80~89B70~79C60~69D0~59E
现有若干百分制成绩(成绩个数不超过1000个),请你统计五个等级段的人数,并找出人数最多的那个等级段,按照从大到小的顺序输出该段中所有人成绩(保证人数最多的等级只有一个)。
输入描述:
第一行是成绩的个数 n
第二行是学生的成绩,若干0~100 的正整数,用空格隔开
输出描述:
第一行为5个正整数,分别表示 A,B,C,D,E 五个等级段的人数
第二行一个正整数,表示人数最多的等级段中人数
接下来一行若干个用空格隔开的正整数,表示人数最多的那个等级中所有人的分数,按从大到小的顺序输出。
样例输入:
10
100 80 85 77 55 61 82 90 71 60
样例输出:
2 3 2 2 1
3
85 82 80


答案:

分析:
略。

n = int(input())
lis = list(map(int, input().split()))
sta = [[], [], [], [], []]
for i in lis:
    if 90 <= i <= 100:
        sta[0].append(i)
    elif 80 <= i <= 89:
        sta[1].append(i)
    elif 70 <= i <= 79:
        sta[2].append(i)
    elif 60 <= i <= 69:
        sta[3].append(i)
    else:
        sta[4].append(i)

L = 0
for i in sta:
    print(len(i), end=' ')
    if len(i) > L:
        L = len(i)
        result = i

print()
print(L)
result.sort(reverse=True)
for i in result:
    print(i, end=' ')

第10题:不同单词个数统计

题目:
时间限制:
1s
内存限制:
128MB
题目描述:
编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, three, boys。
说明:
(1)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开;
(2)不用考虑单词的大小写,假设输入的都是小写字符;
(3)句子长度不超过100个字符。
输入描述:
输入只有一行,即一个英文句子。
输出描述:
输出只有一行,是一个整数,表示句子中不同单词的个数。
样例输入:
one little two little three little boys
样例输出:
5


答案:

分析:
略。

word = set(input().split())
print(len(word))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/156243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle Mysql审计日志等保测评

mysql oracle的审计日志 mysql的审计日志说是有两种方法&#xff0c;一种是需要安装插件模式的审计&#xff0c;一种直接开一个参数 1.安装插件模式 一、 mysql 日志 配置永久配置 &#xff1a; 保存时间及大小 https://blog.csdn.net/m0_51197424/article/details/12432840…

设计模式(二)----软件设计原则

在软件开发中&#xff0c;为了提高软件系统的可维护性和可复用性&#xff0c;增加软件的可扩展性和灵活性&#xff0c;要尽量根据7条原则来开发程序&#xff0c;从而提高软件开发效率、节约软件开发成本和维护成本。 1、单一职责原则 ( 核心&#xff1a;尽量保证类&#xff0…

毫米波雷达和视觉融合的学习路线

了解各个传感器的成像原理&#xff0c;知其所以然&#xff0c;同时了解每种传感器的对比及优缺点&#xff0c;为什么要用这几种融合&#xff0c;可以通过去看一些德州仪器的雷达原理视频&#xff08;b站&#xff09;&#xff0c;雷达工作手册等。先广而后深&#xff1a;了解经典…

C#-WPF介绍-创建项目-添加按钮等及其事件处理、属性设置

微软官网指导链接&#xff1a;适用于 .NET 5 的 Windows Presentation Foundation 文档 | Microsoft Learn WPF框架介绍&#xff1a;Windows Presentation Foundation 简介 - WPF .NET | Microsoft Learn WPF介绍 WPF&#xff08;Windows Presentation Foundation&#xff09…

python3在window上运行或安装模块各种问题

1. 在window上运行celery各种奇怪的问题 如出现错误&#xff1a; ValueError: not enough values to unpack (expected 3, got 0) 请先安装如下模块 pip install eventlet 启动时&#xff0c;带上改模块&#xff0c;指定为运行参数 celery -A tasks worker --loglevelinfo -P …

基于小程序云开发的智慧物业、智慧小区微信小程序,在线报修报检,重大事项投票,报名参加小区活动,小区公告通知,业委会公示、租售房屋

功能介绍 完整代码下载地址&#xff1a;基于小程序云开发的智慧物业、智慧小区微信小程序 当前小区的物业事务越来越多、越来越杂&#xff0c;而很多业主工作繁重&#xff0c;加班很晚&#xff0c;以往对于重大事项投票&#xff0c;报修报检&#xff0c;装修申请&#xff0c;…

大数据技术之SparkSQL(超级详细)

第1章 Spark SQL概述 1.1什么是Spark SQL Spark SQL是Spark用来处理结构化数据的一个模块&#xff0c;它提供了2个编程抽象&#xff1a;DataFrame和DataSet&#xff0c;并且作为分布式SQL查询引擎的作用。 它是将Hive SQL转换成MapReduce然后提交到集群上执行&#xff0c;大大…

易盾滑块再再再试

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言文章推荐自己的坑js部分效果展示前言 声明&#xff1a;本文只作学习研究&#xff0c;禁止用于非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff…

php宝塔搭建部署实战响应式自动化设备科技企业网站源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 本期给大家带来一套php开发的响应式自动化设备科技企业网站源码&#xff0c;感兴趣的朋友可以自行下载学习。 技术架构 PHP7.2 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码&…

我眼中的偶数数据库 OushuDB

各位大家好&#xff0c;在论坛跟大家学习也有一段时间了&#xff0c;今天来聊聊我眼中的偶数数据库 &#xff5e; 首先&#xff0c;先来介绍介绍我和偶数的故事&#xff08;其实没有什么故事&#xff0c;只是一些交集片段&#xff09;。 2015 年我开始接触 Greenplum&#xf…

Spring Boot 配置文件

Spring Boot 配置文件一、配置文件作用二、配置文件的格式三、properties 配置文件说明3.1 properties 基本语法3.2 读取配置文件3.3 properties 优缺点分析四、yml 配置文件说明4.1 yml 优点分析4.2 yml 基本语法4.3 yml 基本配置读取4.4 配置对象与读取4.5 配置集合与读取五、…

时序预测 | Python实现XGBoost极限梯度提升树股票价格预测

时序预测 | Python实现XGBoost极限梯度提升树股票价格预测 目录 时序预测 | Python实现XGBoost极限梯度提升树股票价格预测预测效果基本描述环境配置模型描述程序设计参考资料预测效果 基本描述 Python实现XGBoost极限梯度提升树股票价格预测 环境配置 XGboost (0.7) numpy (1.…

负载均衡器Ribbon原理及实战演练

目录 一、负载均衡原理 二、Ribbon 原理及使用 三、Loadbalancer 原理及使用 负载均衡器Ribbon在微服务领域是很常用的服务调用、负载均衡的中间件,其面包含Loadbalancer专门负载负载均衡&#xff1b;比如Eureka、Fegin,Nacos的注册中心jar包里面均包含Ribbon相关的jar,如图…

python实战案例:采集某漫客《网游之近战法师》所有章节

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 环境使用: Python 3.8 Pycharm 模块使用: requests >>> pip install requests 数据请求模块 parsel >>> pip install parsel 数据解析模块 如果安装python第三方模块: win R 输入 cmd 点击确定, 输…

C++学习之旅 第五章(字符应用:小写字母转大写字母)

开头&#xff1a; 上一节我们讲了关于char类型许多知识&#xff0c;今天我们来更深层的学习一下字符实际上面的应用&#xff01; ASCII码简介&#xff1a; 我们要进行字符的应用&#xff0c;首先就是要了解一下ACSII码: ASCII(全名&#xff1a;American Standard Code for Inf…

win10如何安装多个jdk并实时进行切换【建议收藏】

在windows10的系统中&#xff0c;如何安装jdk或者安装多个jdk版本&#xff0c;博主在这里整理了一份非常完美的jdk版本安装教程&#xff0c;且jdk版本可以随时切换&#xff0c;切换过程不超过10秒&#xff0c;让你在jdk版本中穿梭自如&#xff0c;直接可以食用&#xff0c;掌握…

【前端】ES6

let 和 const 类似var定义变量&#xff0c;但是let修饰的变量仅在声明的代码块中有效&#xff1b; var声明的变量&#xff0c;在全局有效 for (let i 0; i < 3; i) {let i abc;console.log(i); }js中的for循环声明循环变量的部分也作为一个父作用域&#xff0c;即(let i…

虹科方案|数据中心虚拟化和 HK-ATTO 产品—旨在协同工作的端到端解决方案

一、概述虚拟化技术正迅速成为现代数据中心的基础&#xff0c;因为IT 管理寻求显着提 高资源和运营效率以及对业务需求的响应能力。三个关键技术非常重要&#xff1a;服务器虚拟化、结构虚拟化和存储虚拟化。 本次介绍了 HK-ATTO 产品如何作为这些虚拟化解决方案中 每一个的关键…

【图像处理OpenCV(C++版)】——4.1 对比度增强之灰度直方图

前言&#xff1a; &#x1f60a;&#x1f60a;&#x1f60a;欢迎来到本博客&#x1f60a;&#x1f60a;&#x1f60a; &#x1f31f;&#x1f31f;&#x1f31f; 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义&#xff0c;适用于平时学习、工作快…

声纹识别与声源定位(二)

一、引言 什么是声源定位(Sound Source Localization&#xff0c;SSL)技术&#xff1f;声源定位技术是指利用多个麦克风在环境不同位置点对声信号进行测量&#xff0c;由于声信号到达各麦克风的时间有不同程度的延迟&#xff0c;利用算法对测量到的声信号进行处理&#xff0c;由…