1 | 题目

在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10。
编写程序计算韩信至少有多少兵。2 | 设计分析

采用求余运算,借助已知条件通过枚举法找到满足上述条件的一个最小整数。
3 | 创建功能或功能块

创建功能块FB,命名为“HanxinLeadArmy”。
4 | 定义接口变量

具体接口变量定义见下图:
定义数据类型为整型数的变量#soldierNumQ作为结果输出。
5 | 程序代码

编写程序代码。如下图:

采用WHILE循环,注意循环条件设置成了TRUE,如果报数错误的话可能会导致CPU死机,该种情况应该做一些处理。
6 | 代码测试

在循环OB中调用FB-“HanxinLeadArmy”,调用时会自动创建背景数据块,命名为“InstHanxinLeadArmy”,该背景数据块可以用来监视和修改数据。转至在线并监控程序。如下图:

得到结果:韩信至少带了2111个士兵。
7 | 总结

学习使用WHILE循环语句;
学习使用IF条件语句;
学习组合赋值的使用;
学习EXIT语句在循环中的作用。- END -
工控老炮儿

分享 | 咨询 | 合作 | 共赢
文章转载自工控老炮儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




