输出自然数-第10届蓝桥杯国赛Python真题精选

news2024/11/23 14:53:30

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

输出自然数,本题是2019年5月25日举行的第10届蓝桥杯青少组Python编程国赛真题,题目要求编程根据给定条件按照从小到大的顺序输出10个最小的自然数。

先来看看题目的要求吧。

一.题目说明

编程实现:

按照从小到大的顺序输出符合以下条件的10个最小的自然数:

它们是质数,且被3除余2,且被7除余6,且被11除余10,且被17除余16,且被23除余22。

输入描述:

输出描述:

10行,每行一个符合题目要求的自然数,按从小到大的顺序输出

评判标准:

  • 30分:可以输出第一个符合题目要求的自然数;

  • 50分:完全符合题目要求,即按照从小到大顺序输出了符合题目要求的10个自然数。

二.思路分析

这是一道计算的题目,涉及到的知识点包括循环语句、条件语句、余数运算以及质数的判断。

根据题意,可以将本题拆分成两个问题:

  • 判断质数

  • 余数的判断

首先是质数的判断,关于这部分的知识点,可以参考《包含3的数字-第10届蓝桥杯省赛Python真题精选》这篇文章,其中有详细的介绍。

需要注意的是,由于本题涉及的数字比较大,一定要使用效率更高的方法来判断质数。

余数的判断,则相对要简单多了,只需要使用%运算符即可。

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

三.编程实现

根据上面的思路分析,我们分两步来编写代码:

  • 定义函数判断质数

  • 输出10个自然数

1. 定义函数判断质数

参考《包含3的数字-第10届蓝桥杯省赛Python真题精选》中的思路分析,定义函数如下:

图片

需要注意的是,这里使用了math库中的ceil()方法,其作用是向上取整。为什么要向上取整呢,原因在于range()函数具备虎头蛇尾(有头无尾)的特点。

当然,你也可以使用int()函数保留整数部分,然后再增加1。

2. 输出10个自然数

有了上面定义的函数,接下来就简单多了,使用循环,找到前10个满足条件的质数即可。但是,我们需要考虑一个问题,可以使用for...in循环吗?

仔细思考,你会发现无法直接确定这10个数字的范围是多少。针对这种情况,可以改用while循环,并使用一个计数器,来记录输出自然数的个数,它可以作为循环的条件。

根据这个思路,编写代码如下:

图片

代码比较简单,但是必须要强调一点,就是判断的写法和顺序。

题目是这么描述的,“它们是质数,且被3除余2,且被7除余6,且被11除余10,且被17除余16,且被23除余22。”

很多同学会自然而然地先判断是否为质数,再判断余数的情况。如果你这么写,那么输出10个自然数需要很长的时间,为什么呢?

原因很简单,由于数字跨度大,判断素数是非常消耗时间的。

所以比较好的方法,是先判断余数情况,再判断是否为质数,这样可以节省很多不必要的判断,极大地提升了效率。

运行程序,执行结果如下:

1083851216770328902713793481433540746966916141827632246970450377225679

至此,整个程序就全部完成了。

四.思考与总结

本题分数为50分,代码在20行左右,涉及到的知识点包括:

  • 循环语句,包括for...in循环和while循环;

  • 条件语句,主要是if语句及嵌套用法;

  • 运算符的灵活使用,包括%和and;

  • 数学函数库的使用;

  • 函数的定义及使用;

题目难度一般,重点有两个,一是质数的判断,二是while循环的灵活运用。这些都是非常基础的Python编程知识,对于大部分同学都没有问题。

真正关键的是,如何提升程序的效率,在蓝桥杯比赛中,对程序运行的时间是有要求,一旦超时,是不能得分的。

所以,我们不仅要把程序写出来,还要想办法写得更好。一定要有优化思维,先保证写出来,然后在此基础上进行优化,提升程序的效率。

比如本题中质数的判断以及自然数的判断,无非都是使用枚举算法逐个处理,那么优化的思路就是能否去掉一些不必要的判断,让枚举的规模降低,从而提升效率。

计算机解决问题其实没有任何特殊技巧,它唯一的解决办法就是枚举,穷举所有的可能性。

而算法设计无非就是:

  • 先思考如何枚举

  • 再追求聪明的枚举

超平老师给你留一个思考题,关于质数(素数)的判断,除了本题中给出的算法,还有效率更高的算法吗,具体是怎么实现的呢?

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

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

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

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

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

相关文章

CSS3 多媒体查询、网格布局

一、CSS3多媒体查询: CSS3 多媒体查询继承了CSS2多媒体类型的所有思想,取代了查找设备的类型。CSS3根据设置自适应显示。 多媒体查询语法: media not|only mediatype and (expressions) { CSS 代码...; } not: not是用来排除掉某些特定…

一文5个步骤从0到1实现Jmeter分布式压力测试(建议收藏)

之前写过用jmeter做接口测试的文章,本篇我们继续介绍下用jmeter做分布式压力测试的例子。 用jmeter做压力测试,如果只用一台机器,有鉴于线程数的限制和一台机器的性能,可能无法满足压力测试的实际需求,解决这个问题&a…

Postman使用json提取器和正则表达式实现接口的关联

近期在复习Postman的基础知识,在小破站上跟着百里老师系统复习了一遍,也做了一些笔记,希望可以给大家一点点启发。 一)使用json提取器实现接口关联 实际项目场景,在财务信息页面,需要上传一个营业执照&…

【已验证】php配置连接sql server中文乱码(解决方法)更改utf-8格式

解决数据库中的中文数据在页面显示乱码的问题 在连接的$connectionInfo中设置"CharacterSet" > "UTF-8",指定编码方式即可 $connectionInfo array("UID">$uid, "PWD">$pwd, "Database">$database…

黑马程序员微服务SpringCloud实用篇01

SpringCloud01 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#xff…

ChatGPT 上新,效果炸裂,知识平台才是大模型的最佳狩猎场

数新网络_让每个人享受数据的价值浙江数新网络有限公司是一家开源开放、专注于云数据智能操作系统和数据价值流通的服务商。公司自主研发的DataCyber云数据智能操作系统,主要包括数据平台CyberData、人工智能平台CyberAI、数据智能引擎CyberEngine、数据安全平台Cyb…

希亦ACE和石头m1这两款内衣洗衣机哪一款更好?高性价比内衣洗衣机测评

内衣洗衣机可以说是近两年很火爆的小家电了,给大家带了一种全新的时尚体验,越来越内衣裤也可以用手洗!而且还比手洗得干净!不过现在市面上关于内衣洗衣机的品牌越来越多,小伙伴们想要挑选一款性价比高的内衣洗衣机看得…

python之SPC:计算Cpk

目录 1、Ca、Cp和Cpk的理解 2、python计算Cp,Cpk与Pp,Ppk 3、总结 1、Ca、Cp和Cpk的理解 Ca、Cp和Cpk是制程能力指数,它们分别代表制程准确度、制程精密度和制程能力指数。 制程准确度(Ca)反映实际平均值与规格中心值之一致性。对于单边…

C#中.NET 7.0不再支持ADO.NET,.NET Framwork依旧支持

目录 一、.NET 7.0框架下任何应用不再支持ADO.NET 二、.NET Framwork框架下Windows窗体应用支持ADO.NET 三、.NET 7.0不支持ADO.NET的真正原因 经过一阵折腾,终于可以确证C#中.NET框架不再支持用户通过ADO.NET的实体框架模型访问数据库,无论是.NET 7…

供应原厂电流继电器 - HBDLX-21/3 整定电流范围0.1-1.09A AC220V

HBDLX系列型号: HBDLX-20/1零序过电压继电器;HBDLX-20/2零序过电压继电器 HBDLX-20/3零序过电压继电器;HBDLX-20/4零序过电压继电器 HBDLX-20/5零序过电压继电器;HBDLX-21/1零序过电压继电器 HBDLX-21/2零序过电压继电器&#xf…

【Python】pact-python模块进行契约测试

Pact是一个契约测试框架,有多种语言实现,本文主要介绍模块pact-python进行契约测。 官网:https://docs.pact.io/implementation_guides/python/readme 安装命令:pip install pact-python 安装过程中如果报错,安装失…

Deepsort从入门到精通

1 ,sort和Deepsort算法 在目标检测领域,sort(Simple Online and Realtime Tracking)算法和 DeepSORT(Deep Learning for Multi-Object Tracking)算法是两种常用的目标追踪算法,它们通常与目标检…

京东数据分析:2023年Q3户外鞋服市场分析报告(冲锋衣行业销售数据分析)

从露营、骑行、徒步、桨板、垂钓、飞盘、滑雪到如今的city walk,近两年户外运动已经成为了年轻人新的生活方式。户外运动的爆发也刺激了人们对于鞋服在穿搭、场景化、专业性功能等方向的需求,户外鞋服市场迎来增长。 而全国性的降温则带给目前的户外鞋服…

嵌入式养成计划-52----ARM--开发板介绍--相关硬件基础内容介绍--GPIO讲解

一百三十一、开发板介绍 131.1 核心板介绍 131.2 拓展板 一百三十二、相关硬件基础内容介绍 132.1 PCB PCB( Printed Circuit Board),中文名称为印制电路板,又称印刷线路板, 是重要的电子部件,是电子元器…

WPS的JS宏基础(一)

基础知识 1、简单的第一个宏 //注意function只能全部用小写 function demo(){alert("你好!") }2、录制宏生成工资条 function 使用录制宏自动生成代码以JS宏为例()//使用相对引用 {Selection.Copy(undefined);ActiveCell.Offset(5, 0).Range("A1:M4").I…

【C++】new和delete深度解析

文章目录 一、new/delete是什么?1.new2.delete 二、new/delete怎么用?1.new2.delete3.new[]4.[]delete 三、new/delete为什么?1.为什么有operator new/operator delete?2.为什么要匹配使用new和delete? new/delete测试环境:visu…

使用Pytorch的一些小细节(一)

文章目录 前言数据结构-张量max函数索引函数赋值函数拼接函数 前言 由于不经常动手写代码,所以对于python语言中的常见数据结构的用法也不是很熟悉,对于pytorch中的数据结构就更加不熟悉了。之前的代码基础是基于C语言的,属性都是自己定义&a…

vue3使用element plus时遇到的问题

1.el-form中input无法输入 问题描述:在el-form中的el-input中输入数字或字母时出现卡顿,输入不进去的现象 问题原因:el-form的ref和model的名称写成了一样的单词 问题解决:两个不能一样 2.input去除边框 问题描述:…

【python海洋专题三十九】海洋指数画法--折线图样式三--不同颜色的线条

【python海洋专题三十九】海洋指数画法–折线图样式三–不同颜色的线条 数据:AMO_index 图像展示: 图片 往期推荐 图片 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深nc文件并水深地形图 【python海洋专题三】图像修饰之画…

文心一言 VS 讯飞星火 VS chatgpt (132)-- 算法导论11.2 4题

四、用go语言,说明在散列表内部,如何通过将所有未占用的槽位链接成一个自由链表,来分配和释放元素所占的存储空间。假定一个槽位可以存储一个标志、一个元素加上一个或两个指针。所有的字典和自由链表操作均应具有 O(1)的期望运行时间。该自由…