一共有 5 个村民,编号分别为 A、B、C、D、E,他们其中一个在村口看到过锦鲤。
5 个村民各自发言:
A :我和 E 都没有看到过锦鲤
B :锦鲤是被 C 和 E 其中一个看到的
C :锦鲤是被我和 D 其中一个看到的
D :B 和 C 都没有看到过锦鲤
E :我没有看到锦鲤
已知五个村民中有且只有 2 个人说的是真话,请问是谁看到了锦鲤?
若有多个答案,在一行中输出,按字典序,编号之间用空格隔开。
#include<iostream>
using namespace std;
int main()
{
for (int a = 0; a < 2; a++)
{
for (int b = 0; b < 2; b++)
{
for (int c = 0; c < 2; c++)
{
for (int d = 0; d < 2; d++)
{
for (int e = 0; e < 2; e++)
{
if (((a == 0 && e == 0) + ((c==1&&e==0)||(c==0&&e==1)) + ((c==0&&d==1)||(c==1&&d==0)) + (b == 0 && c == 0) + (e == 0)) == 2)
{
if (a == 1)
cout << "A ";
if (b == 1)
cout << "B ";
if (c == 1)
cout << "C ";
if (d == 1)
cout << "D ";
if (e == 1)
cout << "E ";
}
}
}
}
}
}
return 0;
}