题目
题解
这种题可以选择手算。
一般我们都是选择枚举哪个人是坏的,判断是否满足题目给出的条件。
看下面的宏定义吧,我觉得我的这个实现方法应该是比较简洁易懂了。
代码
#include<bits/stdc++.h>
#define A (!bad[0])
#define B (bad[0] || bad[2])
#define C (!A && !B)
#define F (bad[5])
#define D (!C && !F)
#define E (A && D && !B && !C && !F)
using namespace std;
int bad[10];
int main()
{
for (int i = 0;i < 6;i ++) {
bad[i] = 1;
if (A + B + C + D + E + F == 3) cout << char (i + 65) << endl;
bad[i] = 0;
}
return 0;
}