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也不可能作案。
请问:谁是嫌疑犯?
(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; }
相关文章推荐
- MOOC清华《程序设计基础》第3章:谁是嫌疑犯(位运算循环枚举)
- MOOC清华《程序设计基础》第3章:谁做的好事(循环枚举)
- MOOC清华《程序设计基础》第3章:谁做的好事(顺序枚举)
- MOOC清华《程序设计基础》第3章第3题:今天星期几
- MOOC清华《程序设计基础》第3章第4题:求平方和2
- MOOC清华《程序设计基础》第3章第5题:求特定数的和
- MOOC清华《程序设计基础》第3章第1题:谁是大块头
- MOOC清华《程序设计基础》第3章第2题:谁的饭量小
- MOOC清华《面向对象程序设计》第3章编程题第1题:重载函数运算符以封装排序算法
- MOOC清华《VC++面向对象与可视化程序设计》第3章补例:诗文扇面
- MOOC清华《程序设计基础》第4章:筛法求素数
- MOOC清华《程序设计基础》第5章:八皇后问题-代码一
- MOOC清华《面向对象程序设计》第3章:static静态成员实验
- MOOC清华《程序设计基础》第5章:快速排序(分配动态空间)
- MOOC清华《程序设计基础》第5章:快速排序(不分配动态空间-算法一)
- MOOC清华《程序设计基础》第5章:青蛙过河问题
- MOOC清华《程序设计基础》第7章:统计活跃用户数
- MOOC清华《程序设计基础》第9章第1题:模拟汇编语言编译器
- MOOC清华《程序设计基础》第4章:筛法数人数
- MOOC清华《程序设计基础》第5章:快速排序(不分配动态空间-算法二)