一道六嫌疑犯的逻辑判断题
<div class="highlighter">[*]/**
[*] * 某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析: <br>
[*] * A、B至少有一人作案;<br>
[*] * A、E、F三人中至少有两人参与作案;<br>
[*] * A、D不可能是同案犯;<br>
[*] * B、C或同时作案,或与本案无关; C、D中有且仅有一人作案;<br>
[*] * 如果D没有参与作案,则E也不可能参与作案。<br>
[*] * 试编一程序,将作案人找出来。
[*] *
[*] * @author 赵学庆,Java世纪网(java2000.net)
[*] *
[*] */<span />
[*]public class T {
[*] public static void main(String[] args) {
[*] // TODO Auto-generated method stub<span />
[*] String[] persons = { "A", "B", "C", "D", "E", "F" };
[*] for (int i = 0; i <= 63; i++) {
[*] int t = i;
[*] int num[] = new int;
[*] int j = 5;
[*] for (; j >= 0; j--) {// 换成二进制数码,保存在一个6个元素的一维数组中<span />
[*] if (t / 2 > 0) {
[*] num = t % 2;
[*] t = t / 2;
[*] } else {
[*] num = t;
[*] break;
[*] }
[*] }
[*] // num--num代表A--F<span />
[*]<span />
[*] // 代表AB至少有一个人作案<span />
[*] if (num + num >= 1) {
[*] // AEF 至少2个人作案<span />
[*] if (num + num + num >= 2) {
[*] // AD 不是同案犯。但可能都没作案或其中一个作案<span />
[*] if (num + num <= 1) {
[*] // BC 同时作案,或者同时没作案<span />
[*] if ((num + num == 0 || num + num == 2)) {
[*] // CD肯定有一个人作案了<span />
[*] if (num + num == 1) {
[*] // 如果D没作案且E也没作案,或者 D作案了了<span />
[*] if (num == 0 && num == 0 || num == 1)
[*] for (int index = 0; index < num.length; index++) {
[*] if (num == 1) {
[*] System.out.print(persons);
[*] }
[*] }
[*] }
[*] }
[*] }
[*] }
[*] }
[*]<span />
[*] }
[*]<span />
[*] }
[*]<span />
[*]}
页:
[1]