韩信点兵c语言编程(韩信点兵c语言编程循环语句)

http://www.itjxue.com  2023-02-05 06:05  来源:未知  点击次数: 

C语言韩信点兵(容易超时)

递归的思想,1个

队列

的话,3余1,明显就是3x+1,最小x=1;和为4

两个队列,5余2,,首先他要满足4+3x的形式,才能满足1,找最小的x使3x+4%5=2;5次以内必找到,和为7;

三个队列7+(3*5)x%7=4;7次必找到;可以得出最多只要计算A+B+C+D+E+F+G+H次的乘法和

除法

,不可能超1000MS。

请问韩信点兵用c语言怎么编写啊?

用枚举法即可,在最大带兵范围内循环计算,直至找到合适的数。

题主的具体题目是什么?我这里先按最核心的内容编写代码吧。

题目:韩信带兵1500人,战死大约400-500,剩余兵力,3人一排多2人,5人一排多4人,7人一排多6人,求韩信剩余多少兵力。

#include?stdio.h

int?main?(void)?{

int?n;?

for?(n=1000;?n1100;?n++)?/*战死大约400-500,循环范围即在1000-1100之间*/

if((n%3==2)(n%5==4)(n%7==6))?/*循环找寻某数符合除3余2且除5余4且除7余6*/

printf("韩信剩余兵力为%d人!",n);

getch?();

return?0;

}

运行结果

韩信点兵(c语言)

你完全没有按照题目要求做。

#include?stdio.h

void?main(){

long?long?i,A,B,C,D,E,F,G,H,a,b,c,d,e,f,g,h;

scanf("%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld",A,B,C,D,E,F,G,H,a,b,c,d,e,f,g,h);

for(i=A;;i++)

if(i%A==ai%B==bi%C==ci%D==di%E==ei%F==fi%G==gi%H==h)

{printf("%lld",i);break;}

}

运行示例:

C语言韩信点兵

因为循环里面,设定了 i=100,

即执行完循环,i 肯定是101,

所以,if(i100) printf("No answer\n");

是可以执行的。

其实你可以单步调试一下就知道了。

c语言编程序:韩信点兵,韩信有一队伍,你想知道有多少人,就让士兵报数,按从1至5报数,最末一个士兵报的

韩信点兵不是按3人一排,5人一排,7人一排吗?如果是这样的话

# includestdio.h

int main()

{

int n,a,b,c;

scanf("%d%d%d",a,b,c);

for(n=10;n=200;n++)

{

if (n%3==a n%5==b n%7==c)

{

if(n=100)

{

printf("%d",n);

break;

}

else

{

printf("No answer");

}

}

}

}

(责任编辑:IT教学网)

更多

推荐PowerPoint文章