19. 韩信点兵hanxin

题目:

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

样例输入:

2  1  6

2  1  3

样例输出:

Case 1:41

Case 2:No answer

思路:

总人数对3取余,对5取余,对7取余,同时满足输入的数,即可算出。设一个标识变量标记是否找到,若找到,则进行下次输入,若没找到,就输出 “N0 answer”

代码:

#include 
using namespace std;

int main()
{
int a = 0, b = 0, c = 0;
int kase = 0;
while (cin >> a >> b >> c) {
bool found = false;
for (int i = 10; i < 101; ++i) {
if ((i % 3 == a) && (i % 5 == b) && (i % 7 == c)) {
cout << "Case " << ++kase << ": " << i << endl;
found = true;
break;
}
}
if (!found) {
cout << "Case " << ++kase << ": " << "No answer" << endl;
}
}

return 0;
}

你可能感兴趣的:(19. 韩信点兵hanxin)