C语言韩信点兵

Python018

C语言韩信点兵,第1张

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

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

所以,if(i>100) printf("No answer\n")

是可以执行的。

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

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

#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=Ai++)

if(i%A==a&&i%B==b&&i%C==c&&i%D==d&&i%E==e&&i%F==f&&i%G==g&&i%H==h)

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

}

运行示例:

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

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

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

#include <stdio.h>

int main (void) {

int n 

for (n=1000 n<1100 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

}

运行结果