5920| 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×整数,列出这一串数是8,23,38,……,再 3.列出除以7余2的数2,9,16,23,30……就得出符合题目条件的最小数是23。 事实上,我们已把题目中三个条件合并成一个:被105除余23。 编程解法: 同时满足条件:X÷3余数是2;X÷5余数是3;X÷7余数是2,这三个条件之间是余的关系。 在Makecode中表达式为: 以上三个关系再用逻辑与套上去 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed