天天看點

六嫌疑犯的邏輯判斷題

/**    

* 某地刑偵大隊對涉及六個嫌疑人的一樁疑案進行分析: <br>    

* A、B至少有一人作案;<br>    

* A、E、F三人中至少有兩人參與作案;<br>    

* A、D不可能是同案犯;<br>    

* B、C或同時作案,或與本案無關; C、D中有且僅有一人作案;<br>    

* 如果D沒有參與作案,則E也不可能參與作案。<br>    

* 試編一程式,将作案人找出來。    

*    

* @author 趙學慶,Java世紀網(java2000.net)    

*/    

public class T {    

    public static void main(String[] args) {    

        // TODO Auto-generated method stub    

        String[] persons = { "A", "B", "C", "D", "E", "F" };    

        for (int i = 0; i <= 63; i++) {    

            int t = i;    

            int num[] = new int[6];    

            int j = 5;    

            for (; j >= 0; j--) {// 換成二進制數位,儲存在一個6個元素的一維數組中    

                if (t / 2 > 0) {    

                    num[j] = t % 2;    

                    t = t / 2;    

                } else {    

                    num[j] = t;    

                    break;    

                }    

            }    

            // num[0]--num[5]代表A--F    

            // 代表AB至少有一個人作案    

            if (num[0] + num[1] >= 1) {    

                // AEF 至少2個人作案    

                if (num[0] + num[4] + num[5] >= 2) {    

                    // AD 不是同案犯。但可能都沒作案或其中一個作案    

                    if (num[0] + num[3] <= 1) {    

                        // BC 同時作案,或者同時沒作案    

                        if ((num[1] + num[2] == 0 || num[1] + num[2] == 2)) {    

                            // CD肯定有一個人作案了    

                            if (num[2] + num[3] == 1) {    

                                // 如果D沒作案且E也沒作案,或者 D作案了了    

                                if (num[3] == 0 && num[4] == 0 || num[3] == 1)    

                                    for (int index = 0; index < num.length; index++) {    

                                        if (num[index] == 1) {    

                                            System.out.print(persons[index]);    

                                        }    

                                    }    

                            }    

                        }    

                    }    

        }    

    }    

}

繼續閱讀