题目内容
电视剧《华罗庚》中有一个镜头:华罗庚少年时代用心算法解出了“孙子算经”中的难题,原文是:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?学曰:二十三.”即一个正整数,被3,5,7除,余数分别为2,3,2.“孙子算经”解法的口诀是:“三人同行七十稀,五树梅花二十一,其子团圆正月丰,除百零五便得知.”这个算法又叫“韩信点兵”.相传韩信才略过人,领兵打仗时,为了对敌方保密,从不点自己军队的人数,只是让他的士兵以三人一排很快地从他面前过去,再以五人一排走一次,最后以七人一排走过去,由于队伍走得很快,别人根本来不及数有多少人.然而韩信只对各队士兵的最后一排掠一眼,就知道总数了,他利用的就是上面的这个口诀.
画出程序框图,并编写程序解决“韩信点兵”问题.
分析:我们只介绍一种普通的算法.“韩信点兵”问题相当于求关于x,y,z的不定方程组的正整数解.设所求的数为m,根据题意m应同时满足下列三个条件:
m MOD 3=2;m MOD 5=3;m MOD 7=2.
让m从2开始检验,若三个条件同时满足,则m即为所求.
由于重复进行进行检验,因此要设计循环结构来解决.
解:程序框图,如下图.
程序:
m=2
DO
r1=m MOD 3
r2=m MOD 5
r3=m MOD 7
m=m+1
LOOP UNTIL r1=2 AND r2 =3 AND r3 =2
PRINT m
END
课堂小结
(1)复习有关算法步骤、程序框图、算法语句的重点题型.
(2)总结有关算法步骤、程序框图、算法语句的思想方法.
练习册系列答案
相关题目