公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中
每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:
甲说:“乙没有偷,是丁偷的。”
乙说:“我没有偷,是丙便的。”
丙说:“甲没有偷,是乙偷的。”
丁说:“我没有偷。”
请根据这四人的答话判断谁是盗窃者。
代码:
用0表示没偷,1表示窃贼,4个人中只有1人为窃贼,则a+b+c+d==1,甲乙丙3人都在说谁
偷了谁没偷,则他们说的两个人之和为1.
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d;
for (a=0;a<2;a++)
for (b=0;b<2;b++)
for (c=0;c<2;c++)
for (d=0;d<2;d++)
{
if ((b+c==1)&&(b+c==1)&&(a+b==1)&&(a+b+c+d==1))
{
a?cout<<"甲偷的"<<endl:cout<<"甲没偷"<<endl;
b?cout<<"乙偷的"<<endl:cout<<"乙没偷"<<endl;
c?cout<<"丙偷的"<<endl:cout<<"丙没偷"<<endl;
d?cout<<"丁偷的"<<endl:cout<<"丁没偷"<<endl;
}
}
return 0;
}