凶手
作者:互联网
凶手
【题目描述】
巴斯维克命案抓住了六个嫌疑犯,他们的口供如下:
A:我不是罪犯
B:A、C中有一个是罪犯
C:A和B说了假话
D:C和F说了假话
E:其他五个人中,只有A和D说了真话
F:我是罪犯
他们中只有一半说了真话,凶手只有一个。
本题答案不唯一,请编程找出所有可能的凶手。
【输入描述】
无
【输出描述】
将所有答案依字母顺序输出。每行表示为一个答案。
【样例输入】
无
【样例输出】
A
D
E
【注释】
样例解释:当假设唯一的凶手是A或者D或者E时的输出。输出结果为三行,按字母顺序依次输出。
注意:输出样例仅示意输出格式,非正确答案。
本题意在锻炼编程能力,请同学使用程序算出答案,而不要手
#include <iostream>
#include <iomanip> // 注意加上这一行
#include <cmath>
using namespace std;
int main() {
//0 good man 1 bad man
int aa=1;
int bb=0;
int cc=0;
int dd=0;
int ee=0;
int ff=0;
bool f;
bool a= (aa!=1);
bool b=(aa==1 && cc==1);
bool c=(a==false && b==false);
bool d=(c==false && f ==false);
bool e=(a==true && b==false && c==false && d == true && f == false );
f = (ff==1);
string bad_man="";
int num_of_truth=0;
num_of_truth=a+b+c+d+e+f;
if(num_of_truth==3)
{
cout<<"A"<<endl;
}
aa=0;
bb=1;
cc=0;
dd=0;
ee=0;
ff=0;
a= (aa!=1);
b=(aa==1 && cc==1);
c=(a==false && b==false);
d=(c==false && f ==false);
e=(a==true && b==false && c==false && d == true && f == false );
f = (ff==1);
num_of_truth=0;
num_of_truth=a+b+c+d+e+f;
if(num_of_truth==3)
{
cout<<"B"<<endl;
}
aa=0;
bb=0;
cc=1;
dd=0;
ee=0;
ff=0;
a= (aa!=1);
b=(aa==1 && cc==1);
c=(a==false && b==false);
d=(c==false && f ==false);
e=(a==true && b==false && c==false && d == true && f == false );
f = (ff==1);
num_of_truth=0;
num_of_truth=a+b+c+d+e+f;
if(num_of_truth==3)
{
cout<<"C"<<endl;
}
aa=0;
bb=0;
cc=0;
dd=1;
ee=0;
ff=0;
a= (aa!=1);
b=(aa==1 && cc==1);
c=(a==false && b==false);
d=(c==false && f ==false);
e=(a==true && b==false && c==false && d == true && f == false );
f = (ff==1);
num_of_truth=0;
num_of_truth=a+b+c+d+e+f;
if(num_of_truth==3)
{
cout<<"D"<<endl;
}
aa=0;
bb=0;
cc=0;
dd=0;
ee=1;
ff=0;
a= (aa!=1);
b=(aa==1 && cc==1);
c=(a==false && b==false);
d=(c==false && f ==false);
e=(a==true && b==false && c==false && d == true && f == false );
f = (ff==1);
num_of_truth=0;
num_of_truth=a+b+c+d+e+f;
if(num_of_truth==3)
{
cout<<"E"<<endl;
}
aa=0;
bb=0;
cc=0;
dd=0;
ee=0;
ff=1;
a= (aa!=1);
b=(aa==1 && cc==1);
c=(a==false && b==false);
d=(c==false && f ==false);
e=(a==true && b==false && c==false && d == true && f == false );
f = (ff==1);
num_of_truth=0;
num_of_truth=a+b+c+d+e+f;
if(num_of_truth==3)
{
cout<<"F"<<endl;
}
return 0;
}
标签:输出,false,cout,int,凶手,bool,&& 来源: https://blog.csdn.net/Dequn_Teng_CSDN/article/details/112716665