當柳上原的風吹向天際的時候...

          真正的快樂來源于創造

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
          公安人員抓捕了四個盜竊嫌疑犯,下面是他們的審訊記錄:
          A:是B偷的,不是D偷的
          B:我沒有偷,是C偷的
          C說:A沒有偷,是B偷的
          D:我沒有偷
          現已經確切知道只有一人參與偷竊,且四人的話語要么全是真話,要么全在撒謊。
          請根據這些條件編程判斷誰是小偷?

          package com.heyang;

          public class WhoIsTheThief{
            
          public static void main(String[] args){
              
          int[] arr=new int[4]; 
              
              
          for(arr[0]=0;arr[0]<=1;arr[0]++){
                
          for(arr[1]=0;arr[1]<=1;arr[1]++){
                  
          for(arr[2]=0;arr[2]<=1;arr[2]++){
                    
          for(arr[3]=0;arr[3]<=1;arr[3]++){           
                      
          // 只有一個人是小偷
                      if(hasOnlyOneThief(arr)==false){
                        
          continue;
                      }

                      
                      
          boolean wordByA=(arr[1]==1 && arr[3]==0);
                      
          boolean wordByB=(arr[1]==0 && arr[2]==1);
                      
          boolean wordByC=(arr[0]==0 && arr[1]==1);
                      
          boolean wordByD=(arr[3]==0);
                      
                      
          boolean resultFinal=allTrueOrAllFalse(wordByA,wordByB,wordByC,wordByD);
                      
                      
          if(resultFinal==false){
                        printThief(arr);              
                        
          return;
                      }

                    }

                  }

                }

              }

            }

            
            
          private static boolean hasOnlyOneThief(int[] arr){
              
          int thiefCount=0;
              
              
          for(int i:arr){
                thiefCount
          +=i;
              }

              
              
          return thiefCount==1;
            }

            
            
          private static boolean allTrueOrAllFalse(boolean wordByA,boolean wordByB,boolean wordByC,boolean wordByD){
              
          if(wordByA==true && wordByB==true && wordByC==true && wordByD==true){
                
          return true;
              }

              
          else if(wordByA==false && wordByB==false && wordByC==false && wordByD==false){
                
          return true;
              }

              
          else{
                
          return false;
              }

            }

            
            
          private static void printThief(int[] arr){
              
          char[] arrNames={'A','B','C','D'};  
              
              
          for(int i=0;i<arr.length;i++){
                
          if(arr[i]==i){
                  System.out.println(arrNames[i]
          +"是竊賊");
                }

                
          else{
                  System.out.println(arrNames[i]
          +"不是竊賊");
                }

              }
           
            }

          }
          posted on 2009-01-15 08:35 何楊 閱讀(171) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 黎川县| 安国市| 监利县| 香港| 武穴市| 阿巴嘎旗| 安阳县| 聂拉木县| 南澳县| 张家口市| 郁南县| 渝中区| 嘉荫县| 云南省| 民权县| 大英县| 沅江市| 禹州市| 巫溪县| 湛江市| 越西县| 胶州市| 长武县| 若羌县| 鸡泽县| 西充县| 扬中市| 长白| 屯昌县| 五台县| 武威市| 博客| 武宣县| 邮箱| 宁国市| 遂宁市| 尼玛县| 怀仁县| 蒙阴县| 阿坝县| 甘孜县|