MOOC清华《程序设计基础》第3章:谁是嫌疑犯(位运算循环枚举)
2017-06-29 17:40
375 查看
某市刑侦大队正在调查一桩疑案,对涉及到的六名嫌疑人进行分析。已知有如下事实:
(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()
{
for(int i = 0; i < (1 << 6); i++)
{
int A = (i >> 5) & 1;
int B = (i >> 4) & 1;
int C = (i >> 3) & 1;
int D = (i >> 2) & 1;
int E = (i >> 1) & 1;
int F = i & 1;
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;
break;
}
}
return 0;
}
(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()
{
for(int i = 0; i < (1 << 6); i++)
{
int A = (i >> 5) & 1;
int B = (i >> 4) & 1;
int C = (i >> 3) & 1;
int D = (i >> 2) & 1;
int E = (i >> 1) & 1;
int F = i & 1;
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;
break;
}
}
return 0;
}
相关文章推荐
- MOOC清华《程序设计基础》第3章:谁是嫌疑犯(普通循环枚举)
- MOOC清华《程序设计基础》第3章:谁做的好事(循环枚举)
- MOOC清华《程序设计基础》第3章:谁做的好事(顺序枚举)
- MOOC清华《程序设计基础》第3章第1题:谁是大块头
- MOOC清华《程序设计基础》第3章第2题:谁的饭量小
- MOOC清华《程序设计基础》第3章第3题:今天星期几
- MOOC清华《程序设计基础》第3章第4题:求平方和2
- MOOC清华《程序设计基础》第3章第5题:求特定数的和
- MOOC清华《程序设计基础》期末考试第4题:求三位数的组合
- MOOC清华《面向对象程序设计》第2章:基于范围的for循环实验
- MOOC清华《程序设计基础》第4章:查找扑克牌最小值(线性查找)
- MOOC清华《程序设计基础》第5章:分书问题-代码一
- MOOC清华《VC++面向对象与可视化程序设计》第3章:编程作业-艺术字的显示
- MOOC清华《程序设计基础》第7章:统计在线时长
- MOOC清华《程序设计基础》第8章:以二进制文件存储链表
- MOOC清华《程序设计基础》第2章第5题:银行存款问题2
- MOOC清华《程序设计基础》第4章:筛法求素数
- MOOC清华《程序设计基础》第4章:折半插入排序(测试代码版)
- MOOC清华《程序设计基础》第5章:分书问题-代码二
- MOOC清华《程序设计基础》第5章第3题:用递归算法求最大公约数