Scratch+小学数学妙趣横生6:韩信点兵
Posted 冰岩编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scratch+小学数学妙趣横生6:韩信点兵相关的知识,希望对你有一定的参考价值。
一、题目
《韩信点兵》是小学奥数题中一类经典题型:韩信带兵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代码这样的方法对于人来说工作量大,且过于枯燥,也很容易因疲劳而出错。但是,这对于计算机来说却很简单,正好发挥计算机预算速度快的优势。在编程算法中还有专属于这种“笨”办法的名字呢——枚举法。下面即是用Scratch编写的程序代码:
运行结果如下:
这个结果列表中已记录了1000~1500间所有满足条件的整数,最后根据题目要求选取答案即可。
这里面需要注意的是,这里用得到变量和列表的功能,从左侧功能区点击变量,然后点击建立一个列表,如下图所示:
总之,使用Scratch编程来解数学题,不仅一目了然,并且可以将整个绘制过程以动画的形式展现,并且锻炼了编程思维,同时训练了编程技能。
请回复关键词“趣6”获取全部源代码~
以上是关于Scratch+小学数学妙趣横生6:韩信点兵的主要内容,如果未能解决你的问题,请参考以下文章