赞
踩
二、解题思路:
排尾人数实则就是将总人数分别对3,5,7取余的余数,只要将总人数去掉余数在对3,5,7取余为0即可求出答案。
我直接暴力利用穷举法,10——100的数字全来一遍一一对应!
#include<iostream>
#include<stdio.h>
using namespace std;
//韩信点兵。相传韩信清点士兵从来不直接清点。只要让士兵三人一排、五人一排、七人一排地变换队形,每次只要看队尾的几个人就可以得出士兵的数量。输入包含多组数据,每组数据包含3个非负整数a, b, c,表示每种队列排尾的人数(a < 3,b < 5,c < 7),输出为符合的人数最小值(全部不符合就输出No answer)。总人数不小于10,不超过100。输入到文件结束为止。
int main() {
int a, b,c,t;
cin >> a >> b >> c;
for (int i = 10; i <= 100; i++) {
if ((i - a) % 3 == 0 && (i - b) % 5 == 0 && (i - c) % 7 == 0) {
cout << i << endl;
t = 1;//用来判断到底有没有这样的数字
}
}if (t != 1) {
cout << "这些士兵我怀疑是乱站的吧,拉出去砍头" << endl;
//如果10-100都没有找到这样的数字,就把士兵打一顿!!
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。