c语言编程序:韩信点兵,韩信有一队伍,你想知道有多少人,就让士兵报数,按从1至5报数,最末一个士兵报的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言编程序:韩信点兵,韩信有一队伍,你想知道有多少人,就让士兵报数,按从1至5报数,最末一个士兵报的相关的知识,希望对你有一定的参考价值。
韩信点兵不是按3人一排,5人一排,7人一排吗?如果是这样的话# include<stdio.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");
参考技术A #include<stdio.h>
int main()
int x=1;
while ( x%5!=1 || x%6!=5 || x%7!=4 || x%11!=10 )
x++;
printf("%d",x);
参考技术B 约瑟夫环
用循环链表实现 参考技术C 用中国剩余定理计算 参考技术D 5
韩信点兵
/* 韩信点兵 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队 形,而他每次只掠一眼队伍的排尾就知道总人数了。输入多组数据,每组数据包含3个非负整数a,b,c,表示每种 队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100.输入 到文件结束为止。 */ # define LOCAL #include<stdio.h> #include<time.h> int main(){ #ifdef LOCAL freopen("data.in","r", stdin); freopen("data.out","w", stdout); #endif // LOCAL int a, b, c; int peoples, cases=0; while(scanf("%d %d %d", &a, &b, &c) == 3){ cases++; peoples = -1; for(int i = 10; i < 100; i++){ if((i % 3 == a) && (i % 5 == b) && (i % 7 == c)){ peoples = i; } } if(peoples > 0){ printf("Case %d: %d\n", cases, peoples); } else { printf("Case %d: No Answer\n", cases); } } return 0; } /* [input] 2 1 6 2 1 3 [output] Case 1: 41 Case 2: No Answer */
以上是关于c语言编程序:韩信点兵,韩信有一队伍,你想知道有多少人,就让士兵报数,按从1至5报数,最末一个士兵报的的主要内容,如果未能解决你的问题,请参考以下文章
韩信点兵 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排五人一排七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入3个非负整数a,b,c ,表示每种队形排尾