穷举法很容易解答这些问题
某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析:
1)A、B 至少有一人作案;
2)A、E、F 三人中至少有两人参与作案;
3)A、D 不可能是同案犯;
4)B、C 或同时作案,或与本案无关;
5)C、D 中有且仅有一人作案;
6)如果 D 没有参与作案,则 E 也不可能参与作案。
试编一程序,将作案人找出来。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <stdio.h> int main(int argc, char *argv[]) { int sum; int A,B,C,D,E,F; for(A=0; A<=1; A++ ) { for(B=0; B<=1; B++ ) { for(C=0; C<=1 ; C++) { for(D=0; D<=1 ; D++) { for(E=0; E<=1 ; E++ ) { for(F=0; F<=1 ; F++ ) { sum = 0; sum += A+B>=1; sum += A+E+F>=2; sum += A+D<2; sum += B+C==2 || B+C==0; sum += C+D==1; sum += !(D==0 && E==1); if (sum==6) { if (A==1) printf("A"); if (B==1) printf("B"); if (C==1) printf("C"); if (D==1) printf("D"); if (E==1) printf("E"); if (F==1) printf("F"); printf("\n"); } } } } } } } return 0; } |