题目内容

电视剧《华罗庚》中有一个镜头:华罗庚少年时代用心算法解出了“孙子算经”中的难题,原文是:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?学曰:二十三.”即一个正整数,被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)总结有关算法步骤、程序框图、算法语句的思想方法.

练习册系列答案
相关题目

违法和不良信息举报电话:027-86699610 举报邮箱:58377363@163.com

精英家教网