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

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

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

相关文章

电脑记事软件哪款安全?好用且安全的桌面记事工具

在快节奏的现代生活中&#xff0c;我们每天都要用电脑处理大量的工作。电脑不仅提升了工作效率&#xff0c;还成为了我们记录重要事项和灵感的得力助手。比如&#xff0c;在策划项目时&#xff0c;我会直接在电脑上列出要点和步骤&#xff1b;在开会时&#xff0c;我也会用电脑…

关于c中 指针数组、数组指针、二级指针的理解与证明

起因 对于 指针数组、数组指针、二级指针 这三个概念有点混淆&#xff0c;就花了一些时间证明。并且解释了一下关于这三种情况下的 *(p1) 到底指向哪里的问题。 语法示例 int* pointerArr[5]; //指针数组&#xff0c;存放指针的数组int (*arr) [5]; //数组指针&#xff0c;…

Python代码:二十一、增加派对名单(二)

1、题目 描述 为庆祝驼瑞驰在牛爱网找到合适的对象&#xff0c;驼瑞驰通过输入的多个连续字符串创建了一个列表作为派对邀请名单&#xff0c;在检查的时候发现少了他最好的朋友“Allen”的名字&#xff0c;因为是最好的朋友&#xff0c;他想让这个名字出现在邀请列表的最前面…

高密度絮凝沉淀澄清设备特性及价格

诸城市鑫淼环保小编带大家了解一下高密度絮凝沉淀澄清设备特性及价格 高密度沉淀池主要的技术是载体絮凝技术&#xff0c;这是一种快速沉淀技术&#xff0c;其特点是在混凝阶段投加高密度的不溶介质颗粒(如细砂)&#xff0c;利用介质的重力沉降及载体的吸附作用加快絮体的“生长…

python打造自定义汽车模块:从设计到组装的全过程

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言 二、定义汽车模块与核心类 三、模拟汽车组装过程 四、抽象与封装 五、完整汽车…

物联网应用系统与网关

一. 传感器底板相关设计 1. 传感器设计 立创EDA传感器设计举例。 2. 传感器实物图 3. 传感器测试举例 测试激光测距传感器 二. 网关相关设计 1. LORA&#xff0c;NBIOT等设计 2. LORA&#xff0c;NBIOT等实物图 3. ZigBee测试 ZigBee测试 4. NBIoT测试 NBIoT自制模块的测试…

代码随想录-算法训练营day53【动态规划14:最长公共子序列、不相交的线、最大子序和(动态规划)】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part14● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划 详细布置 1143.最长公共子序列 体会一下本题和 718. 最长重复子数组 的区别 视频讲解:https://www.bilibili.co…

精彩大合集,手慢就没了!!

《springboot》 关键字&#xff1a;springboot 别闹了&#xff0c;你还在手写后台校验&#xff1f;试试Spring的这个注解吧&#xff01;&#xff01; Spring Boot的一个问题&#xff0c;证明你是不是真正的 "会用" Spring boot ? 兄弟们&#xff0c;集合&am…

vue3-api之provide与inject

传值&#xff1a; 父组件 > 子组件 > 孙组件 // 父组件 <template><div class"app"><h3>我是app组件(祖) --- {{ name }} {{ price }}</h3><child /></div> </template><script> import { reactive, toRefs,…

【LaTex】11 ACM参考文献顺序引用 - 解决 ACM-Reference-Format 顺序不符合论文实际引用顺序的问题

【LaTex】11 ACM参考文献顺序引用 写在最前面解决 ACM-Reference-Format 顺序不符合论文实际引用顺序的问题问题描述问题原因如何解决问题解决方案1&#xff08;更简单&#xff09;解决方案2&#xff08;更自由&#xff09; 小结 &#x1f308;你好呀&#xff01;我是 是Yu欸 …

浙江大学数据结构MOOC-课后习题-第六讲-图2 Saving James Bond - Easy Version

题目汇总 浙江大学数据结构MOOC-课后习题-拼题A-代码分享-2024 题目描述 测试点 思路分享 ①解题思路概览 我的想法是&#xff0c;先建立一个图&#xff0c;然后再利用DFS或者BFS来遍历判断当前顶点能否跳到岸上去 ②怎么建图&#xff1f; 首先要考虑采用什么数据结构来存储图…

uni微信小程序input框过滤中文字节以及规定以外的符号

问题描述 需求是输入账号只能为手机号、邮箱、字母和数字组成的字符串&#xff0c;那么就是所有大小写字母、数字、以及符号 - _ . 四种。 条件限制 微信小程序无法直接通过type属性实现&#xff0c;type属性中没有专门为只允许英文字母的输入类型。详情见input | uni-ap…

AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.04.15-2024.04.25

文章目录~ 1.AutoGluon-Multimodal (AutoMM): Supercharging Multimodal AutoML with Foundation Models2.Fusion of Domain-Adapted Vision and Language Models for Medical Visual Question Answering3.CatLIP: CLIP-level Visual Recognition Accuracy with 2.7x Faster Pr…

LVM与磁盘配额09

一、LVM 1、lvm概述 lvm &#xff08;logical volume manager &#xff09;&#xff1a;逻辑卷管理 linux系统下对硬盘分区的一种管理机制。 场景&#xff1a;lvm机制特别适合于管理大存储设备。 作用&#xff1a;可以动态的对硬盘进行扩容 。 逻辑上的磁盘&#xff0c;概…

爬虫技术中的滑块验证问题及解决方案

一、引言 随着大数据时代的到来&#xff0c;网络爬虫技术已成为数据获取和分析的重要工具。然而&#xff0c;随着网络安全性的提高&#xff0c;越来越多的网站开始采用滑块验证技术来防止机器人程序的自动化访问。对于爬虫开发者来说&#xff0c;如何绕过或处理滑块验证成为了…

uni-app加载本地图片报500(Internal Server Error)异常解决办法

在网上看到关于加载本地图片500错误是因为分包后无法加载分包中的图片&#xff0c;需要在manifest.json中在对应平台的配置下添加"optimization" :{ “subPackages” : true } 这个方法对我遇到的这种错误无效&#xff0c;于是我仔细看了一下所报的异常 上面说在pac…

教你网站如何免费实现https

想要实现https访问最简单有效的的方法就是安装SSL证书。只要证书正常安装上以后&#xff0c;浏览器就不会出现网站不安全提示或者访问被拦截的情况。下面我来教大家怎么去获取免费的SSL证书&#xff0c;又如何安装证书实现https访问。 一、选择免费SSL证书提供商 有多家机构提…

灵狐剪辑软件,视频AI剪辑+去水印裁剪+视频 分割+批量合成+智能混剪(教程+软件)

1.介绍&#xff1a; 【灵狐剪辑】是一款视频编辑工具&#xff0c;能够帮助用户轻松地制作出专业级别的视频作品。这款软件拥有丰富的视频编辑功能&#xff0c;包括剪辑、合并、添加特效、调整音频等&#xff0c;让用户能够充分发挥创意&#xff0c;打造出独具特色的视频内容。…

OSINT技术情报精选·2024年5月第3周

OSINT技术情报精选2024年5月第3周 2024.5.27版权声明&#xff1a;本文为博主chszs的原创文章&#xff0c;未经博主允许不得转载。 1、爱分析&#xff1a;《小步快跑,数据库持续敏捷迭代&#xff1a;数据库应用实践报告》 在国家政策的推动、技术创新以及业务需求的共同驱动下…

Hugging face win使用教程(二)

1. 将环境迁移到win&#xff0c;可以直接下载修改好的cuda环境https://download.csdn.net/download/liangjiubujiu/89368302?spm1001.2014.3001.5503 2. 修改hugging face的缓存路径 3. 重启pycharm 4. 编写测试代码&#xff0c;注意可能由于网络链接问题&#xff0c;需要关…