平方回文数-第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。

相关推荐
JUNAI_Strive_ving10 分钟前
番茄小说逆向爬取
javascript·python
彤银浦11 分钟前
python学习记录7
python·学习
简单.is.good32 分钟前
【测试】接口测试与接口自动化
开发语言·python
Envyᥫᩣ1 小时前
Python中的自然语言处理:从基础到高级
python·自然语言处理·easyui
哪 吒1 小时前
华为OD机试 - 几何平均值最大子数(Python/JS/C/C++ 2024 E卷 200分)
javascript·python·华为od
我是陈泽1 小时前
一行 Python 代码能实现什么丧心病狂的功能?圣诞树源代码
开发语言·python·程序员·编程·python教程·python学习·python教学
hakesashou1 小时前
python全栈开发是什么?
python
创作小达人1 小时前
家政服务|基于springBoot的家政服务平台设计与实现(附项目源码+论文+数据库)
开发语言·python
ZPC82102 小时前
Python使用matplotlib绘制图形大全(曲线图、条形图、饼图等)
开发语言·python·matplotlib
镜花照无眠2 小时前
Python爬虫使用实例-mdrama
开发语言·爬虫·python