相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排,五人一排,七人一排地变换队形,而他每次只看一眼队伍的排尾就知道人数了。输入包含多组数据,每组数据包含三个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或者报告无解)。已知总人数不小于10,不超过100。

  样例输入:

  2 1 6

  2 1 3

  样例输出:

  Case 1:41

  Case 2:No answer

 #include <iostream>
#include<cstdio>
#include<windows.h> using namespace std;
//以上文件部分相当于#include<stdio.h> int main()
{
int a,b,c; //定义数据
int cishu=; //第几次输入
while(cin>>a>>b>>c)
{
cishu++; //进来就是要输出
int flag=; //flag为0就是No answer
for(int i=; i<=; i++) //人数范围是10-100
{
//3,5,7三次走法,排尾人数就是整除3,5,7以后的余数
//案例不多所以直接暴力破解就好
//所有可能取值全部拿出来尝试
//人数减差值就是一个可以刚好可以整除的数
if((i-a)%==&&(i-b)%==&&(i-c)%==){
cout<<"Case "<<cishu<<":"<<i<<endl;
flag=; //输出以后更改flag
break;
}
}
if(flag==) //输出不存在的情况
cout<<"Case "<<cishu<<":No answer"<<endl;
}
system("pause");
return ;
}
05-17 02:48