您的位置:首页 > 其它

MOOC清华《程序设计基础》第3章:谁是嫌疑犯(普通循环枚举)

2017-06-29 17:18 274 查看
某市刑侦大队正在调查一桩疑案,对涉及到的六名嫌疑人进行分析。已知有如下事实:

(1)A、B至少有一人作案;

(2)A、E、F中至少有两人作案;

(3)A、D不可能是同案犯;

(4)B、C或同时作案,或与本案无关;

(5)C、D中有且仅有一人作案;

(6)如果D没有作案,那么E也不可能作案。

请问:谁是嫌疑犯?

#include <iostream>
using namespace std;

int main()
{
int A, B, C, D, E, F;
bool found = false;
for(A = 0; A <= 1 && !found; A++)
for(B = 0; B <= 1 && !found; B++)
for(C = 0; C <= 1 && !found; C++)
for(D = 0; D <= 1 && !found; D++)
for(E = 0; E <= 1 && !found; E++)
for(F = 0; F <= 1 && !found; F++)
{
bool b1 = (A == 1)||(B == 1);
bool b2 = ((A == 1)&&(E == 1))||
((A == 1)&&(F == 1))||
((E == 1)&&(F == 1));
bool b3 = !((A == 1)&&(D == 1));
bool b4 = ((B == 1)&&(C == 1))||
((B == 0)&&(C == 0));
bool b5 = ((C == 1)&&(D == 0))||
((C == 0)&&(D == 1));
bool b6 = ((D == 0)&&(E == 0))||(D == 1);
if(b1 && b2 && b3 && b4 && b5 && b6)
{
cout << A << B << C << D << E << F << endl;
found = true;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐