蓝桥杯基础练习汇总详细解析(三)——字母图形、01字符串、闰年判断(详细解题思路、代码实现、Python)

本文主要是介绍蓝桥杯基础练习汇总详细解析(三)——字母图形、01字符串、闰年判断(详细解题思路、代码实现、Python),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

试题 基础练习 字母图形

提交此题   评测记录  

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式

输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。

输出格式

输出n行,每个m个字符,为你的图形。

样例输入

5 7

样例输出

ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC

数据规模与约定

1 <= n, m <= 26。

解题分析:

        根据题目描述,我们可以发现这个程序输出的结果是有规律的。我发现的规律是:当输出完第一行字符内容后,第n(n>1)行的首字母按照英文字母表顺序依次往后递增。然后首字母后紧跟着首字母在“英文字母表”的前一个字母。直到当该行的字母变为“A”时,则会输出"A"以后的字母。当一行输出的长度等于程序规定的列数,则“字母图形”一行的内容输出完成。

我的实现思路是:根据ASCII码表示字母,其中“A“对应的ASCII值为65、“B”对应的ASCII值为66(与A的ASCII码值相差1)、“C”对应的ASCII值为67(与A的ASCII码值相差2)....依次类推:可以发现'A'后面的字母对应的ASCII码值可以根据,该字母与A的相对位置推算出来。我使用双层循环实现对程序的输出规范化,将第一个字母的ASCII码值设定为65,然后当字母图形中输出一行内容完毕后,就将第一个字母对应的ASCII码值(first_number)加1。然后根据first_number这个值判断当前的字母是否为A。如果为A,就将ASCII值减1。如果等于A,就将ASCII码值加1。

具体实现如下:

def letter_graph():list_input=list(map(int,input().split())) #接受用户输入的n,mfor n in range(list_input[0]): #规定输出行数first_number=65 #将每行首字母对应的ASCII码设置为65,即Afirst_number+=n #当字母表的一行内容输出完成,则将下一行的首字母往后推移,即ASCII码加1index=0 #初始化下标first_number1=first_number #将每行首字母对应的ascii码值,保存到临时变量first_number中for m in range(0,list_input[1]): #规定输出列数if first_number1==65:result=chr(first_number1+index) #如果ASCII码值为65,即A。将输出A以后得字母index+=1print(result,end="")continue if first_number1>65: #如果当前的字母是print(chr(first_number1),end="")first_number1-=1print()
letter_graph()

运行通过截图:

试题 基础练习 01字串

提交此题   评测记录  

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

输入格式

本试题没有输入。

输出格式

输出32行,按从小到大的顺序每行一个长度为5的01串。

样例输出

00000
00001
00010
00011
<以下部分省略>

题目分析:

        如果我们按照排列组合得到32个结果对于我来说,感觉有点困难。因为题目中描述的字母符串由五位01组成,我想到二进制相关知识,且升序输出。然后我就将最大的字符串11111写出来,发现对应的十进制数是31。所以我采用的思路是:通过一个for循环循环遍历生成0到31的十进制数,然后通过使用bin()函数将十进制数转换为二进制数。因为bin()函数返回的结果是一个字符串,且有二进制标志0b,所以我采用了字符串切片技术取出数值部分。然后结合实际情况,定义一个列表,列表元素是全部为0的字符串,用于将输出字符串中的数据补足为五位。

具体实现如下:

def fstr_01():list_01=[]list_zore=["0",'00','000','0000'] #定义一个列表用于补位for i in range(32):str_01=bin(i)[2:] #切片技术取出数据部分str_index=5-len(str_01) #计算出当前数据需要补0位数if str_index:str_01=list_zore[str_index-1]+str_01 #对数据进行补0操作print(str_01)else:print(str_01) #如果输出数据不用补0,则直接输出
fstr_01() #调用函数

运行通过截图:

试题 基础练习 闰年判断

提交此题   评测记录  

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

给定一个年份,判断这一年是不是闰年。

当以下情况之一满足时,这一年是闰年:

1. 年份是4的倍数而不是100的倍数;

2. 年份是400的倍数。

其他的年份都不是闰年。

输入格式

输入包含一个整数y,表示当前的年份。

输出格式

输出一行,如果给定的年份是闰年,则输出yes,否则输出no。

说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。

样例输入

2013

样例输出

no

样例输入

2016

样例输出

yes

数据规模与约定

1990 <= y <= 2050。

题目分析:

这个题目就是一个条件控制语句,需要知道在python中"%"表示求余运算即可。

具体实现如下

def leap_year():year=int(input())if (year%4==0 and year%100!=0) or year%400==0: #润年的条件判断print("yes" )else:print("no")
leap_year()

运行通过截图:

这篇关于蓝桥杯基础练习汇总详细解析(三)——字母图形、01字符串、闰年判断(详细解题思路、代码实现、Python)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/855729

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.