Q:
5.**人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答**人员的问题中:
甲说:“乙没有偷,是丁偷的。”
乙说:“我没有偷,是丙便的。”
丙说:“甲没有偷,是乙偷的。”
丁说:“我没有偷。”
甲说:“乙没有偷,是丁偷的。”
乙说:“我没有偷,是丙便的。”
丙说:“甲没有偷,是乙偷的。”
丁说:“我没有偷。”
请根据这四人的答话判断谁是盗窃者。
A:
分析无论说的是真话还是假话,甲乙丙三人都是一人偷,一人没偷,则两个人必有一偷,令四人分别为A,B,C,D,设标志1为盗
B+D=1, B+C=1,A+B=1,A+B+C+D=1;
代码:
#include<iostream>
using namespace std;
int main()
{
int a[4],i,j;
for(i=0;i<4;++i)
{
for(j=0;j<4;++j)
if(j==i) a[j]=1;
else
a[j]=0;
if(a[1]+a[3]==1&&a[1]+a[2]==1&&a[0]+a[1]==1&&a[0]+a[1]+a[2]+a[3]==1)
{
cout<<"the thief is"<<char('A'+i)<<endl;
}
}
system("pause");
return 0;
}