截取递增数-第15届蓝桥省赛Scratch中级组真题第6题

news2024/9/23 19:10:01

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第191讲。

如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。

第15届蓝桥杯省赛已于2024年8月24日落下帷幕,中级组编程题一共有6题,分别如下:

  • 抓不住的蜜蜂

  • 穿越病毒区

  • 画台扇

  • 收集松果

  • 占领矩阵

  • 截取递增数

截取递增数,本题是2024年8月24日举行的第15届蓝桥省赛Scratch中级组编程第6题,题目要求编程截取递增数。要求对一个不含0的九位数,获取所有的递增数并存入列表,如果没有就说“NO”,按下空格键对列表中的递增数排序,然后说出最大的数字。

先来看看题目的要求吧。

一.题目说明

背景信息:

递增数:如果一个大于9的正整数各个数位上的数,从左到右是逐渐变大的,那么就称这个数为递增数。

例如:124、248 是递增数。

给你一个不含 0的九位数,请找出从这个九位数中能截取出的所有递增数。

例如:115367482能够截取出的递增数有:15、36、 67、367、48。

注意:只能截取若干个连续的数。

编程实现:

截取递增数

具体要求:

1). 点击绿旗,列表1为空,熊猫说“请输入一个不含0的九位数”,同时舞台下方显示示榆入框,如图所示;

例如:输入115367482

2). 如果输入的整数不能截取出递增数,熊猫说“NO”,1秒后程序结束;

3). 如果输入的整数能截取出递增数,那么在列表 1中呈现出截取的所有递增数,如图所示;

图片

4). 得到所有递增数之后,按下空格按键,列表1中的数按照从小到大的顺序重新排列,如图所示;

图片

5). 最后,熊猫说出列表1中的最大数,如图所示,1秒后程序结束。

图片

评判标准:

  • 5 分:满足"具体要求"中的1);

  • 28分:满足"具体要求"中的2);

  • 28分:满足"具体要求"中的3);

  • 25 分:满足"具体要求"中的4);

  • 14分:满足"具体要求"中的5)。

二.思路分析

本题只有一个角色,就是熊猫,如图所示:

图片

这是一道算法题,考查的知识点主要包括字符串处理、列表运算、嵌套循环和排序算法等。

对于本题而言,有两个关键点:

  • 获取递增数

  • 列表排序

关于列表排序,在历届真题中出现过多次,最近一次是2024年1月28日,具体的分析讲解可以参考《选择排序-第15届蓝桥第4次STEMA测评Scratch真题精选》这篇教程,这里就不再赘述了。

我们的重点是如何获取递增数?

首先要理解递增数的概念,就像生活中的排队现象,按照从小到大的顺序依次排列,如图:

图片

如果一个小朋友代表一位数字的话,整体就构成一个递增数,比如下图中的1234:

我们以题目给出的数字115367482进行分析,在这个9位数中,有如下5个递增数:

15, 36, 367, 67, 48

仔细分析这些递增数,你发现了什么?

简单来说,有如下两个特点:

1). 递增数至少是两位数;

2). 递增数的一部分也是递增数;

尤其是第二点,非常重要,比如367是递增数,36和67是367的一部分,它们也是递增数。

因此,我们可以遍历整个九位数,把每一位数字当做起点,逐个往后比较,直到当前数字不大于后一位数字,同时将得到的递增数字存入到列表中。

为方便描述,我们使用变量"i"表示循环的轮数,变量“j”表示数字的起点。

第一轮循环,i = 1,将第1个数字1作为起点,进行循环处理,如下:

数字:115367482j = 1,第j个数字为1,第j+1个数字为11 < 1不成立,循环结束本轮循环没有递增数

第二轮循环,i = 2,将第2个数字1作为起点,循环判断,如下:​​​​​​​

数字:115367482j = 2,第j个数字为1,第j+1个数字为51 < 5成立,j增加1,找到一个递增数15j = 3,第j个数字为5,第j+1个数字为35 < 3不成立,循环结束本轮循环找到一个递增数15

第三轮循环,i = 3,将第3个数字5作为起点,循环判断,如下:​​​​​​​

数字:115367482j = 3,第j个数字为5,第j+1个数字为35 < 3不成立,循环结束本轮循环没有递增数

第四轮循环,i = 4,将第4个数字3作为起点,循环判断,如下:​​​​​​​

数字:115367482j = 4,第j个数字为3,第j+1个数字为63 < 6成立,j增加1,找到一个递增数36j = 5,第j个数字为6,第j+1个数字为76 < 7成立,j增加1,找到一个递增数367j = 6,第j个数字为7,第j+1个数字为46 < 4不成立,循环结束本轮循环找到两个递增数36和367

第五轮循环,i = 5,将第5个数字3作为起点,循环判断,如下:​​​​​​​

数字:115367482j = 5,第j个数字为6,第j+1个数字为76 < 7成立,j增加1,找到一个递增数67j = 6,第j个数字为7,第j+1个数字为46 < 4不成立,循环结束本轮循环找到一个递增数67

以此类推,循环8轮(最后只有1个数字,无需判断),就可以找到所有的递增数了,这是一个嵌套循环的过程。

思路有了,接下来,我们就进入程序实现环节。

三.编程实现

根据上面的思路分析,我们分3步来完成作品:

  • 获取递增数

  • 列表排序

  • 完成主程序

1. 获取递增数

根据前面的思路分析,我们定义一个自制积木用于获取递增数,代码如下:

代码挺多的,说明5点:

1). 要处理的数字直接使用“回答”指令获取;

2). 递增数至少需要两位,所以最后一位数字不用处理,循环的轮数等于“回答的字符数 - 1”;

3). 每一轮循环,要将变量“数字”设置为空字符串,只要当前数字小于后一位数字,就将其追加到“数字”的后面,内层循环结束时,还需要把第j个数字连接起来;

4). 以第i个字符作为起点时,对于一个长度大于2的递增数,它有多个递增数,比如367和36,因此在内层循环时,要将这些子递增数都加入到列表;

5). 由于递增数至少是两位,对于加入列表的数字需要进行判断,这就是“如果数字 > 9 那么”指令的作用;

2. 列表排序

我们使用选择排序算法对列表中的递增数进行排序,为了方便,也将其定义成一个自制积木,编写代码如下:

图片

选择排序的核心思想是这样的,对于长度为n的列表,进行n轮排序,每一轮(用i表示)在未排序的数据中,找到最小的列表项,放到第i位,这需要使用嵌套循环来实现。

3. 完成主程序

接下来,在绿旗指令下编写代码如下:

图片

代码比较简单,说明3点:

1). 列表一定要清空;

2). 如果没有递增数,在说完“NO”后,直接停止全部脚本;

3). 对于按键的处理,使用“等待条件”指令最简单,效果也最好;

至此,整个作品就创作好了,是时候来测试自己的作品啦。

四.总结与思考

本题是中级组编程部分第6题,分数为100分,积木块数量100个左右,涉及到的知识点主要包括:

  • 字符串运算;

  • 列表处理;

  • 嵌套循环;

  • 排序算法;

作为本次中级组省赛的第6题,也是压轴题,难度较大,完成时间25分钟左右。本题的难点有两个,一是如何获取递增数,二是列表排序。

其中,排序算法在历届真题中已经出现了多次,涉及排序的作品有10来个左右,这是我们必须掌握的基础算法。

真正有难度的是如何获取递增数,在Python和C++中,递增数是常客,但是在Scratch竞赛中,这是第一次出现。这说明Scratch竞赛逐渐开始算法化,对于基础不错的孩子,在平时的学习过程中,应该多关注一下算法层面的练习和思考。

获取递增数的实现并没有那么复杂,关键是要分析递增数的构成规律,确定好寻找递增数的方法,代码层面其实就是嵌套循环和字符串处理。

超平老师给你留一道思考题,如果需要判断输入的数字是否为不含0的九位数,你知道该怎么实现吗?

你还有什么好的方法吗,非常欢迎您和超平老师交流分享。

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

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

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

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

相关文章

【c数据结构】OJ练习篇 帮你更深层次理解链表!(相交链表、相交链表、环形链表、环形链表之寻找环形入口点、判断链表是否是回文结构、 随机链表的复制)

目录 一. 相交链表 二. 环形链表 三. 环形链表之寻找环形入口点 四. 判断链表是否是回文结构 五. 随机链表的复制 一. 相交链表 最简单粗暴的思路&#xff0c;遍历两个链表&#xff0c;分别寻找是否有相同的对应的结点。 我们对两个链表的每个对应的节点进行判断比较&…

力扣 209.长度最小的子数组

一、长度最小的子数组 二、解题思路 采用滑动窗口的思路&#xff0c;详细见代码。 三、代码 class Solution {public int minSubArrayLen(int target, int[] nums) {int n nums.length, left 0, right 0, sum 0;int ans n 1; for (right 0; right < n; right ) { …

数通。。。

通信&#xff1a;需要介质才能通信电话离信号塔&#xff08;基站&#xff09;越远&#xff0c;信号越弱。信号在基站之间传递。你离路由器越远&#xff0c;信号越差。一个意思 比如想传一张图片&#xff0c;这张图片就是数据载荷 网关&#xff0c;分割两个网络。路由器可以是网…

Chat2VIS: Generating Data Visualizations via Natural Language

Chat2VIS:通过使用ChatGPT, Codex和GPT-3大型语言模型的自然语言生成数据可视化 梅西大学数学与计算科学学院&#xff0c;新西兰奥克兰 IEEE Access 1 Abstract 数据可视化领域一直致力于设计直接从自然语言文本生成可视化的解决方案。自然语言接口 (NLI) 的研究为这些技术的…

巴黎嫩事件对数据信息安全的影响及必要措施

2024年9月17日&#xff0c;黎巴嫩首都贝鲁特发生了多起小型无线电通信设备爆炸事件&#xff0c;导致伊朗驻黎巴嫩大使受轻伤。这一事件不仅引发了对安全的广泛关注&#xff0c;也对数据信息安全提出了新的挑战。 王工 18913263502 对数据信息安全的影响&#xff1a; 数据泄露风…

MySQL慢查询优化指南

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 前言 当遇到慢查询问题时&#xff0c;不仅影响服务效率&#xff0c;还可能成为系统瓶颈。作为一位软件工程师&#xff0c;掌握MySQL慢查询优化技巧至关重要。今天&#xff0c;我们就来一场“数据库加速之旅…

Thinkphp(TP)

1.远程命令执行 /index.php?sindex/think\app/invokefunction&functioncall_user_func_array&vars[0]system&vars[1][]whoami 2.远程代码执行 /index.php?sindex/think\app/invokefunction&functioncall_user_func_array&vars[0]phpinfo&vars[1][]…

Java面向对象——内部类(成员内部类、静态内部类、局部内部类、匿名内部类,完整详解附有代码+案例)

文章目录 内部类17.1概述17.2成员内部类17.2.1 获取成员内部类对象17.2.2 成员内部类内存图 17.3静态内部类17.4局部内部类17.5匿名内部类17.5.1概述 内部类 17.1概述 写在一个类里面的类叫内部类,即 在一个类的里面再定义一个类。 如&#xff0c;A类的里面的定义B类&#x…

微信支付商户号注册流程

目录 一、官方指引二、申请规则三、申请流程1.提交资料2.签约协议3.绑定场景 四、微信支付商户登录入口 一、官方指引 https://kf.qq.com/faq/210423UrIRB7210423by6fQn.html 二、申请规则 1、微信支付商家仅面向企业、个体工商户、政府及事业单位、民办非企业、社会团体、基…

java sdk下载,解决下载了java但是编译不了

直接搜Java得到的网站使用不了的 应该只是个功能包或者版本太低用不了 得去oracle公司搜java这个产品去下载

Java语言程序设计基础篇_编程练习题**18.34 (游戏:八皇后问题)

目录 题目&#xff1a;**18.34 (游戏:八皇后问题) 代码示例 代码解析 输出结果 使用文件 题目&#xff1a;**18.34 (游戏:八皇后问题) 八皇后问题是要找到一个解决方案&#xff0c;将一个皇后棋子放到棋盘上的每行中&#xff0c;并且两个皇后棋子之间不能相互攻击。编写个…

Llama 3.1 技术研究报告-2

3.3 基础设施、扩展性和效率 我们描述了⽀持Llama 3 405B⼤规模预训练的硬件和基础设施&#xff0c;并讨论了⼏项优化措施&#xff0c;这些措施提⾼了训练效率。 3.3.1 训练基础设施 Llama 1和2模型在Meta的AI研究超级集群&#xff08;Lee和Sengupta&#xff0c;2022&#x…

模型融合创新性Max!5种模型融合方法刷新SOTA!发顶会必看!

近年来&#xff0c;关于模型融合的研究逐渐火热&#xff0c;出现了很多效果出众的成果。模型融合&#xff08;Model Merging&#xff09;技术&#xff0c;即利用现有模型的参数、架构和特性&#xff0c;巧妙结合成一个新的、功能更强大的模型&#xff0c;这不仅减少了从头训练大…

计算机毕业设计新闻资讯知识施肥技术网站推荐评论搜索猜你喜欢留言/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序

摘要‌ 随着互联网的快速发展&#xff0c;新闻网站成为人们获取新闻资讯的重要途径。本文旨在介绍一款新闻网站毕业设计的开发与实现过程&#xff0c;该系统集新闻发布、用户互动、个性化推荐等功能于一体&#xff0c;采用Spring Boot、Vue等前后端分离技术&#xff0c;旨在提…

风力发电场集中监控解决方案

0引言 风力发电装机容量近年来快速增长。截至7月底&#xff0c;全国发电装机容量达27.4亿千瓦&#xff0c;同比增长11.5%。其中&#xff0c;太阳能和风力发电装机容量分别为4.9亿千瓦和3.9亿千瓦&#xff0c;同比增长42.9%和14.3%。风力发电场分陆上和海上风电&#xff0c;常位…

asp.net core grpc快速入门

环境 .net 8 vs2022 创建 gRPC 服务器 一定要勾选Https 安装Nuget包 <PackageReference Include"Google.Protobuf" Version"3.28.2" /> <PackageReference Include"Grpc.AspNetCore" Version"2.66.0" /> <PackageR…

C++ 异步编程中:future与promise、packaged_task、async

原文链接&#xff1a;C 异步编程之future与promise、async、packaged_task_std::promise和std::future异步发送-CSDN博客 1、std::future std::future类模板来关联线程运行的函数和函数的返回结果&#xff0c;这种获取结果的方式是异步的 std::future 通常由某个 Provider 创建…

BOE(京东方)携故宫博物院举办2024“照亮成长路”公益项目落地仪式以创新科技赋能教育可持续发展

2024年9月20日&#xff0c;BOE&#xff08;京东方&#xff09;“照亮成长路”智慧教室落成暨百堂故宫传统文化公益课山西活动落地仪式在山西省太原市娄烦县实验小学隆重举行。自“照亮成长路”教育公益项目正式设立以来&#xff0c;BOE&#xff08;京东方&#xff09;持续以创新…

食家巷苦豆粉,香得很哟

苦豆粉&#xff0c;它看似普通&#xff0c;却承载着西北的厚重历史与浓郁风情。那一抹淡淡的绿色粉末&#xff0c;蕴含着大自然的馈赠和西北人民的智慧。 苦豆&#xff0c;这种生长在西北土地上的植物&#xff0c;经过精心研磨&#xff0c;变成了细腻的苦豆粉。它的味道独特&am…

Kimi助你快速完成开题报告【超详细实操教程】

随着人工智能的飞速发展&#xff0c;AI技术已经渗透到我们生活的方方面面&#xff0c;包括学术研究。在接下来的文章中手把手教你如何利用AI工具来优化每一个部分&#xff0c;让你的开题报告不仅内容丰富&#xff0c;而且结构严谨&#xff0c;逻辑清晰&#xff0c;为你的毕业论…