韩信点兵c语言编程(韩信点兵c语言编程循环语句)
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");
}
}
}
}