极客小将

您现在的位置是:首页 » scratch编程资讯

资讯内容

Scratch编程解决小学奥数题中一类经典题型!

极客小将2021-02-10-

upload/article/images/2021-02-10/ea5ec818fd64387bb527622869480158.jpg

《韩信点兵》是小学奥数题中一类经典题型:韩信带兵1500人去打仗,战死四五百人。战后清点人数时,韩信命令士兵每3人站一排,多出2人;每5人站一排,多出3人;每7人站一排,多出2人。韩信由此马上算出了士兵人数。请你也算一算,这支部队在战后还有多少人?

记得小时候老师是这么教的:

能除以3余2的数有:2,5,8,11,14……

能除以5余3的数有:3,8,13,18,23……

上面两列数中,首先出现的公共数是8,3和5的最小公倍数是15,能同时满足除以3余2,除以5余3这两个条件的数就是8+15X的整数。

列出这样的整数有:8,23,38……

能除以7余2的数有:2,9,16,23,30……

如此公共数为23,7和15的最小公倍数为105,即符合题目条件的数为23+105X的整数。再根据题目条件带兵1500人,战死四五百,即战后人数在1000~1100人,最终得出X=10,部队战后还剩余士兵1073人。

那要是不会这种巧妙的算法怎么办呢?那就只能用死办法了呗:一共1500人,战死四五百,那就是大概在1000~1100这个范围之内,然后从1000开始,1001,1002,1003……依次除以3,满足余2的再除以5,满足除以5余3的再除以7。

这样的方法对于人来说工作量大,且过于枯燥,也很容易因疲劳而出错。但是,这对于计算机来说却很简单,正好发挥计算机预算速度快的优势。在编程算法中还有专属于这种“笨”办法的名字呢——枚举法。

下面即用Scratch编写的程序代码和输出结果:

upload/article/images/2021-02-10/5cf7d28e6fa7679f70d5a2c131d352ef.jpg

upload/article/images/2021-02-10/83549237aaeb221c9c9a7ca7c30e384c.jpg

这个结果中已记录了1000~1500间所有满足条件的整数,最后根据题目要求选取答案即可。


软件可在MIT Scratch官网https://scratch.mit.edu免费下载。

非常可爱友好的软件界面:

upload/article/images/2021-02-10/ec06058537befa762350fa6511c07a99.jpg

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除

网友点评

共有5条评论来说两句吧...

在线客服