用Scratch 巧解奥数题

根据故事中的描述,每一个水手分椰子的过程是,把一个椰子给猴子,再把椰子平均分为3份,自己藏起一份,留下两份。水手们在头天夜里和第二天早晨共分了4次椰子。

小海豚科学馆推荐你采用枚举法,让椰子数从4开始递增,并判断椰子数能否用4次分完。如果刚好能分完则求得问题的解;否则继续增加椰子数,再模拟分椰子,直到刚好分完为止。

下面小海豚科学馆给出用枚举算法描述的流程图如下。
在这里插入图片描述
接下来,根据上面介绍的算法,小海豚科学馆带你来编写主程序。

首先,我们创建一个名为“x”的变量,并赋初值为4;再用“重复执行直到……”指令构建一个循环结构,在循环体中逐一增加变量“x”的值。这就是一个枚举算法的基本结构。
在这里插入图片描述
对于每一个“x”的值,我们调用模块“水手分椰子”进行检测,如果椰子能分完,则结束循环,输出问题的解。否则就继续检测下一个“x”的值。
在这里插入图片描述
接下来,我们还需要一个重要的模块 “水手分椰子”来检测列举的椰子数是否能分完。小海豚科学馆带你继续编写模块。

模块:水手分椰子

创建一个名为“水手分椰子”的模块,参数是一个名为“椰子”的数字参数。

创建一个名为“椰子”的变量,并将参数“椰子”赋给变量“椰子”。请注意参数“椰子”和变量“椰子”的指令块颜色不同。

接下来,在一个“重复执行……次”的循环结构中对变量“椰子”进行3次迭代。

根据故事描述,3名水手夜里先后偷偷分了3次椰子,每一次都是把1个椰子给了猴子,再把剩下的椰子均分为3份,自己藏起来1份,只留下2份。因此,这个过程可以表示如下:

当天亮后,水手们一起又分了一次椰子。把一个椰子给了猴子,其余的均分成3份,一人一份。可以用下面等式表示:
在这里插入图片描述
然后把这个等式放入一个“如果……那么……否则”的条件判断指令中
在这里插入图片描述
如果条件满足,则把变量“椰子分完”设定为1,否则设定0。

到此,模块“水手分椰子”的代码编写完毕,模块的代码如下。
在这里插入图片描述
在这里插入图片描述
点击绿旗运行程序,得到结果:椰子总数最少是79。
在这里插入图片描述
转自:http://www.china-scratch.com/news/1129

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值