平方回文数-第13届蓝桥杯选拔赛Python真题精选

导读:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python**蓝桥杯真题解析100讲》,**这是解读系列的第73讲。

**平方回文数,**本题是2021年11月27日举办的第13届蓝桥杯青少组Python编程选拔赛真题编程部分第4题。题目要求编程输出100到M之间的平方回文数的个数。

先来看看题目的要求吧。

一.题目说明

编程实现:

给定一个正整数M(100 < M < 2000),输出100到M之间(包含M)的平方回文数的个数。

例如:M为150,则在100到150之间的平方回文数有1个,为121,输出1。

输入描述:

输入一个正整数M

输出描述:

输出100到M之间(包含M)的平方回文数的个数

样例输入:

150

样例输出:

1

二.思路分享

这是一道经典的数论题,涉及的知识点包括回文数,循环、列表、递归算法和动态规划等。

很明显,这是典型的枚举算法,将100到M之间所有的数字挨个进行判断即可。所以这里的重点是如何判断给定数字是平方回文数。

这里有两个概念,一个是回文数,一个是平方数。

关于回文数的判断,在之前的蓝桥真题中出现过多次,实现的方法也比较多,具体可以参考《输出回文数-第11届蓝桥杯选拔赛Python真题精选》这篇文章。

对于平方数的判断,最常见的就是使用数学方法,如果一个数n是平方数,那么它的平方根一定是一个整数,比如:

复制代码
100的平方根是10121的平方根是11144的平方根是12

因此我们可以先计算数出n的平方根并转成整数m,再判断m * m是否等于n,如果相等,说明n为平方数。

为了简化代码,我们可以自定义两个函数分别用于判断,然后在循环中调用函数进行判断并统计平方回文数的个数。

思路有了,接下来,我们就进入具体的编程实现环节。

三.编程实现

根据上面的思路分析,我们分3步来编写程序:

  • 判断回文数

  • 判断平方数

  • 统计平方回文数

1. 判断回文数

在Python编程中,最简单的方法就是使用切片运算逆序字符串,再判断原字符串和逆序字符串是否相等。

定义函数如下:

代码非常简单,需要注意的是,n是整数,需要先转成字符串再进行处理。

2. 判断平方数

根据前面的思路分析,自定义函数如下:

代码非常简单,说明两点:

1). 在Python中,**是幂运算,可以使用 **0.5来计算算术平方根,得到的结果是浮点数,使用int()函数将其转成整型;

2). 在计算平方根的时候,也可以使用math模块中的sqrt()函数,效果一样,但需要引入math模块。

3. 统计平方回文数

有了上面定义的两个函数,接下来只需要使用循环挨个判断并统计即可,代码如下:

代码比较简单,注意一个细节,就是循环的起点和终点,根据题目的说明和样例数据,不包括100,但是包括M。

至此,整个程序就全部完成了,你可以输入不同的数字来测试效果啦。

四.总结与思考

本题代码在12行左右,涉及到的知识点包括:

  • 循环语句;

  • 字符串处理,重点是切片运算;

  • 幂运算的应用;

  • 自定义函数;

本题代码不多,难度一般,关键点有两个,一是如何判断回文数,二是如何判断平方数。

回文数是编程中的经典问题,判断的方法也比较多,在Python编程中,最简单的就是使用字符串逆序方法,尤其是切片运算,真的是太好用了,一定要熟练掌握。

和其他语言不同的是,Python提供了一个强大的幂运算符**,它用于计算一个数的幂,即底数的指数次方。

例如,𝑎𝑏表示𝑎的𝑏次幂,可以直接使用 a ** b 来表示,它不仅可以用于计算平方、立方,还可以计算平方根、立方根等,非常强大。

你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄

需要源码的,可以移步至"超平的编程课"gzh。

相关推荐
Y幽谷客8 小时前
Python加载本地大模型(Qwen3.5 8B)
python·大模型
伞伞悦读9 小时前
【第36期】Python 目录与路径详解:pathlib、文件遍历、创建、复制、移动和删除风险
开发语言·python
线上放牧人9 小时前
Windows删除图标缓存
windows·python·pyqt
qq_54702617910 小时前
Python 变量和简单数据类型
python
智搜广告11 小时前
智搜广告:科技行业AI回答优化公司如何破局
大数据·python·elasticsearch·geo
IpdataCloud11 小时前
AI智能体调用工具怎么核验来源IP?归属地、网络类型与代理风险识别(含Python代码)
数据库·python·tcp/ip
2601_9669496512 小时前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
蒸鱼Yuzheng12 小时前
Python 游戏测试开发怎么准备:日志解析、接口校验、并发与可维护性
自动化测试·python·测试开发·面试题·游戏测试
Ivanqhz12 小时前
BM1688 双核架构
python·深度学习·神经网络·cnn·mlir
Java后端的Ai之路12 小时前
Python进阶探索17 - Python中的深拷贝与浅拷贝
人工智能·python·ai·浅拷贝·深拷贝