[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第93讲。

蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选了一部分题目进行解读。

第11届蓝桥杯青少年组第6次选拔赛于原定于2020年2月15日举行,因为疫情延期到5月31日,形式为线上考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

123数字黑洞,本题是2020年2月15日举行的第11届蓝桥杯Scratch选拔赛真题编程第4题,初级组和中级组都有此题,题目要求编程验证123数学黑洞的计算过程。

先来看看题目的要求吧。

一.题目说明

背景信息:

“123数学黑洞”,指的是对于任意一串数字串,按照一定规则经有限次重复后必得到“123”的结果,即任何数的最终结果都无法逃脱123黑洞。

其中的规则如下:

1). 对任何一串数字串统计出其中的偶数个数、奇数个数、总个数;

2). 按照“偶-奇-总”的方式进行排列,得到新的数字串;

再不断循环这个算法,其最终结果一定会变成123。例如:12345,偶数个数2,奇数个数3,总个数5,我们得到235;235,偶数个数1,奇数个数2,总个数3,我们得到123;

编程实现:

1). 当绿旗被点击,请用户输入任意长度数字串,如图例1;

2). 输入数字串之后,说出这个数字串第一次计算的结果,第二次计算的结果,第三次......直到计算结果为123,如图例2。

评判标准:

  • 20分:能够正常输入数字串;

  • 30分:小猫的第一次计算结果是正确的;

  • 30分:小猫每次计算结果正确并最后得到123;

  • 20分:小猫每次对次数的表述也完全正确,且完全符合题意。

二.思路分析

本题只有1个角色,就是默认的小猫,如图所示:

这是一道经典的递归算法题,那什么是递归呢?

所谓递归,是指在函数的定义中使用函数自身的方法。通俗理解就是:我调用我自己。这是一种常用的解决问题的方法,它可以把”大事化小,小事化了“,从而轻松的解决问题。

看看下面这张图,你立刻就能理解什么是递归了:

构成递归需具备两个条件:

1). 子问题须与原始问题为同样的事,且更为简单;

2). 不能无限制地调用本身,须有个出口。

对于本题而言,对于任何一个给定的数字串,先分别计算出偶数个数、奇数个数和总个数,然后组合得到一个新的数字,再重复这个操作,这就是一个典型的递归过程,递归的出口就是数字等于123。

在Scratch中,实现递归的方式就是定义一个自制积木,然后在自制积木中调用自己,自制积木必须带有参数,同时要有结束条件。

算法的流程图如下:

至于统计偶数和奇数就比较简单了,使用循环逐个取出每个数字,再结合”a除以b的余数“指令,就可以很轻松的判断是偶数还是奇数了。

三.编程实现

根据题目描述和思路分析,我们可以分三步来编写程序:

  • 定义自制积木

  • 使用自制积木

  • 完善代码

1. 定义自制积木

创建一个自制积木,将其命名为”123数字黑洞“,并添加参数”数字“,如图:

然后编写代码如下:

简要说明如下:

1). 在代码块的最后,又使用用了自制积木,这就是递归的体现,即在函数中调用自己(在Scratch中,自制积木就是函数);

2). 在Scratch中,对于数字,可以作为字符串来使用,所以这里获取数字和连接数字,使用的都是字符串指令。

2. 使用自制积木

有了自制积木,接下来就容易了,当绿旗被点击时,使用问答指令,然后调用自制积木即可,对应的代码如下:

3. 完善代码

运行程序,当输入888888时,第一次显示的效果如下:

这和题目的要求有些不相符,我们可以增加一个变量“次数”,表示当前是第几次,在绿旗下面,将其初始化为0,增加代码如下:

对应的,在自制积木中,改动两个小地方,如下:

在说话指令中,使用了4个连接运算符,编写代码的时候,一定要细心一点,避免出错。

再次运行程序,这一次和题目要求就完全一致了,你可以输入任何长度的数字串来看看黑洞效果吧。

四.总结与思考

本题难度系数为4,积木块数量45个左右 ,涉及到的知识点主要包括:

  • 递归的算法思想及其特点;

  • 自制积木及其参数的使用,重点是递归的实现;

  • 如何判断奇偶数,使用取余数指令看余数是否等于0;

  • 字符串运算符,包括获取总个数,获取指定字符和连接操作;

  • 使用循环结合变量来遍历字符串;

  • 循环和条件的嵌套用法。

本题有一定难度,重点是理解递归算法的编程思想及其实现。要实现递归需要确保如下三个方面:

1). 必须有自制积木,并且是带参数的自制积木,每次调用的参数都不一样;

2). 在自制积木中调用自制积木;

3). 必须有结束条件,否则就陷入死循环。

你知道吗,123数字黑洞还有一个名字,叫做西西弗斯黑洞,这又是为什么呢?

西西弗斯的故事出自希腊神话,天神为了惩罚科林斯国王西西弗斯,将一块巨石推到一座陡峭的山顶上,但无论他怎样努力,这块巨石总是在到达山顶时却又不可避免地滚下来,于是他只得重新再推,永无休止。

之所以把数字串123称作西西弗斯串,意思是说对于任意一数字串按本程序进行计算,所得的结果都是123,而且一旦变成123后,无论再计算多少次,都会永无休止地重复着123。

如果你觉得文章对你有所帮助,别忘了点赞,你的鼓励是我坚持继续写下去的最大动力,Thanks♪(・ω・)ノ。

需要素材和源码的,可以联系本人,或者移步至同名wx号。

123数字黑洞-第11届蓝桥杯Scratch选拔赛真题精选相关推荐

  1. 听话的苹果-第11届蓝桥杯Scratch选拔赛真题精选

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第96讲. 蓝桥杯选拔赛每一届都要举行4~5次,和省赛.国赛相比,题目要简单不少,再加上篇幅 ...

  2. 红绿灯记忆游戏-第13届蓝桥杯Scratch选拔赛真题精选

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第77讲. 蓝桥杯选拔赛每一届都要举行4~5次,和省赛.国赛相比,题目要简单不少,再加上篇幅 ...

  3. 嫦娥奔月-第13届蓝桥杯Scratch选拔赛真题精选

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第75讲. 蓝桥杯选拔赛每一届都要举行4~5次,和省赛.国赛相比,题目要简单不少,再加上篇幅 ...

  4. 潜艇游戏-第13届蓝桥杯Scratch选拔赛真题精选

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第71讲. 蓝桥杯选拔赛每一届都要举行4~5次,和省赛.国赛相比,题目要简单不少,再加上篇幅 ...

  5. 春夏秋冬-第12届蓝桥杯Scratch选拔赛真题精选

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第89讲. 蓝桥杯选拔赛每一届都要举行4~5次,和省赛.国赛相比,题目要简单不少,再加上篇幅 ...

  6. 吃豆人游戏-第12届蓝桥杯Scratch选拔赛真题精选

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第79讲. 蓝桥杯选拔赛每一届都要举行4~5次,和省赛.国赛相比,题目要简单不少,再加上篇幅 ...

  7. 植树节种树-第12届蓝桥杯Scratch选拔赛真题精选

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第87讲. 蓝桥杯选拔赛每一届都要举行4~5次,和省赛.国赛相比,题目要简单不少,再加上篇幅 ...

  8. 闰年计算-第13届蓝桥杯Scratch选拔赛真题精选

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第76讲. 蓝桥杯选拔赛每一届都要举行4~5次,和省赛.国赛相比,题目要简单不少,再加上篇幅 ...

  9. 时光倒流-第12届蓝桥杯Scratch选拔赛真题精选

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第88讲. 蓝桥杯选拔赛每一届都要举行4~5次,和省赛.国赛相比,题目要简单不少,再加上篇幅 ...

最新文章

  1. telnet与ssh的配置
  2. mysql查询不确定的信息_mysql 07.18
  3. java学习(14):java命名规范
  4. STM32F7xx —— Timer
  5. 修改3389端口为3389端口
  6. elementUI table 表格表头居中 颜色、内容居左
  7. JNDI学习总结(3)——Tomcat下使用C3P0配置JNDI数据源
  8. rabbitmq python高性能开发_RabbitMQ工作队列实现高性能任务的负载分发[Python实例]...
  9. HDU2147 kiki's game
  10. Linux服务跟随启动,关于linux服务启动与自启动
  11. 百度AI攻略:iOCR自定义模板功能
  12. Blender 快捷键总结,一些子问题
  13. 5e服务器显示steam名字,5e为什么不显示我csgo的名字(5ecsgo)
  14. 修改oracle管理员用户密码
  15. EEE(Energy Efficient Ethernet)-节能以太网
  16. 基于Arduino的吉他调音器
  17. Kafka or RabbitMQ:消息中间件选型深入分析
  18. Java微信公众平台开发(一)——接入微信公众平台
  19. 伺服器对比:S3010,S-U400
  20. 【SQL 解决鸡兔同笼问题】

热门文章

  1. RSA加密和解密流程
  2. 《道德经》的三个重要版本
  3. 一杯茶一包烟,一行代码码一天!用Python分析程序员抽的烟!
  4. Java工程师找工作都有什么要求?
  5. 著名全球最大同性交友社区网站
  6. 基于物联网流量指纹的安全威胁轻量级检测方法
  7. RabbitMQ 进阶 -- 阿里云服务器部署RabbitMQ集群
  8. 合作伙伴、客户与微软一起,成为数字化转型“三胞胎”
  9. 《社交红利》读书总结--如何从微信微博QQ空间等社交网络带走海量用户、流量与收入...
  10. word如何设置上标形式_word上标形式