2017.10.21
韩信点兵
时间限制:3000 ms | 内存限制:65535 KB
难度:1
- 描述
- 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。
- 输入
- 输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7)。例如,输入:2 4 5
- 输出
- 输出总人数的最小值(或报告无解,即输出No answer)。实例,输出:89
- 样例输入
-
2 1 6
- 样例输出
-
41
#include <stdio.h>
#include <stdlib.h>
#include <math.h>int main(int argc, char *argv[])
{
int a,b,c;
int num;
int array[3];
int count=0; //计数有多少个数符合条件
int array_count[10]; //存储符合条件的数
int i=0;
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
for(num=10;num<101;num++)
{
array[0]=num%3; //韩信点兵的原理
array[1]=num%5;
array[2]=num%7;
if(array[0]==a&&array[1]==b&&array[2]==c)
{
array_count[count]=num;
count++;
}
}
if(count==0)
printf("No answer\n");
else
printf("%d ",array_count[0]); //array_count[0]一定是最小的
return 0;
}