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

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

下面小海豚科学馆给出用枚举算法描述的流程图如下。
用Scratch 巧解奥数题
接下来,根据上面介绍的算法,小海豚科学馆带你来编写主程序。

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

模块:水手分椰子

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

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

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

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

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

到此,模块“水手分椰子”的代码编写完毕,模块的代码如下。
用Scratch 巧解奥数题
用Scratch 巧解奥数题
点击绿旗运行程序,得到结果:椰子总数最少是79。
用Scratch 巧解奥数题
转自:http://www.china-scratch.com/news/1129

相关文章:

  • 2021-10-13
  • 2022-12-23
  • 2021-09-03
  • 2021-12-03
  • 2022-12-23
  • 2021-12-23
  • 2021-07-02
  • 2022-12-23
猜你喜欢
  • 2021-12-09
  • 2021-11-29
  • 2021-04-26
  • 2021-12-19
  • 2021-09-23
  • 2022-02-04
  • 2021-05-10
相关资源
相似解决方案