查看: 2454|回复: 1

[入门教程] 用makecode解决韩信点兵问题

[复制链接]
      韩信带兵打仗,站3人一排,多出2人;站5人一排,多出3人;站7人一排,多出2人.韩信马上说出人数。按照今天的话来说:一个数除以3余2,除以5余3,除以7余2,求这个数。这样的问题,也我们称为“韩信点兵”。它形成了一类问题,也是初等数论中的解同余式。
     
人工解法:
  一个数除以3余2,除以5余3,除以7余2,求符合条件的最小数。
1.先列出除以3余2的数:2,5,8,11,14,17,20,23,26……
2.再列出除以5余3的数:3,8,13,18,23,28……
      这两列数中,首先出现的公共数是8。3与5的最小公倍数是15。两个条件合并成一个就是8+15×整数,列出这一串数是82338,……,再       3.列出除以72的数29162330……就得出符合题目条件的最小数是23
      事实上,我们已把题目中三个条件合并成一个:被105除余23

编程解法:
       同时满足条件:X÷3余数是2;X÷5余数是3;X÷7余数是2,这三个条件之间是余的关系。
        在Makecode中表达式为:
微信图片_20180601164835.png

微信图片_20180601164917.png

微信图片_20180601164942.png
以上三个关系再用逻辑与套上去
QQ图片20180601165303.png

rzyzzxw  版主

发表于 2018-6-1 21:23:11

算法,算法。向老师学习。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail