韩信点兵
题目描述:

c语言 ---韩信点兵_i++

 

 

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

分析:

至少拥有的士兵人数应该要顺序满足(1至5 1至6、1至7、1至11) 4种点名方式,则可以构建for循环依次增加士兵人数,直至满足条件。

代码如下

#include<stdio.h>
int main()
{
int i;
for (i = 0;; i++)
{
if (i % 5 == 1 && i % 6 == 5 && i % 7 == 4 && i % 11 == 10)
{
printf("%d", i); break;
}
}
return 0;
}

总结:本题的代码十分简单。但可以从本题中学到的是无论是什么题目都需要先理清逻辑,才能正确运用电脑来帮助我们解决问题。