5-谁是嫌疑犯——破案线索表示
*问题
- A、B至少有一人作案
- A、E、F三人中至少有两人参与作案
- A、D不可能是同案犯
- *B、C或同时作案,或与本案无关
- C、D中有且仅有一人作案
- *如果D没有参与作案,则E也不可能参与作案
A没参与作案
A == 0 或 A != 1
B参与作案
B == 1
A和B都参与作案
A == 1 并且 B == 1
逻辑运算符
&&与

||或

!非


break只退出一重循环,应设置【标志】found
TODO-1


/*
A、B至少有一人作案
A、E、F三人中至少有两人参与作案
A、D不可能是同案犯
* B、C或同时作案,或与本案无关
C、D中有且仅有一人作案
如果D没有参与作案,则D也不可能参与作案
(A == 1) || (B == 1)
(A == 1 && E == 1) || (A == 1 && F == 1) || (E == 1 && F == 1)
!((A == 1) && (D == 1))
(B == 1) && (C == 1) || (B == 0) && (C == 0)
(C == 1) && (D == 0) || (C == 0) && (D == 1)
(D == 0) && (E == 0) || (D == 1)
*/
#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) {
found = true;
cout << A << B << C << D << E << F << endl;
}
}
}
}
}
}
}
return 0;
}
运行结果


浙公网安备 33010602011771号