`
kalin001
  • 浏览: 16334 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

谁说了真话,谁打碎了花瓶

阅读更多
看到一个智力推理题如下:

如果下列只有一个人说了真话,那么是谁打碎了花瓶?

夏克:吉姆打碎花瓶。

汤姆:夏克会告诉你谁打碎了花瓶

埃普尔:汤姆,夏克和我不太可能打碎花瓶。

克里斯:我没打碎花瓶、

艾力克:夏克打碎了花瓶,所以汤姆和埃普尔不太可能打碎花瓶。

吉姆:我打碎了花瓶,汤姆是无辜的。


心血来潮,简单用程序推理了下,下面是代码:
public class dd { 
public static void main(String[] args) { 
  int a, b, c, d, e, f; 
  // 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++) { 
         if( 
           ( (f==1)&&!(f==1)&&!(b==0&&a==0&&c==0)&&!(d==0)&&!(a==1&&b==0&&c==0)&&!(f==1&&b==0))|| 
           (!(f==1)&& (f==1)&&!(b==0&&a==0&&c==0)&&!(d==0)&&!(a==1&&b==0&&c==0)&&!(f==1&&b==0))|| 
           (!(f==1)&&!(f==1)&& (b==0&&a==0&&c==0)&&!(d==0)&&!(a==1&&b==0&&c==0)&&!(f==1&&b==0))|| 
           (!(f==1)&&!(f==1)&&!(b==0&&a==0&&c==0)&& (d==0)&&!(a==1&&b==0&&c==0)&&!(f==1&&b==0))|| 
           (!(f==1)&&!(f==1)&&!(b==0&&a==0&&c==0)&&!(d==0)&& (a==1&&b==0&&c==0)&&!(f==1&&b==0))|| 
           (!(f==1)&&!(f==1)&&!(b==0&&a==0&&c==0)&&!(d==0)&&!(a==1&&b==0&&c==0)&& (f==1&&b==0)) 
          ){ 
          if(a+b+c+d+e+f==1){ 
          System.out.print(a); 
          System.out.print(b); 
          System.out.print(c); 
          System.out.print(d); 
          System.out.print(e); 
          System.out.print(f); 
          System.out.println(); 
          } 
         } 

       } 

} 
} 


运行结果:

000100
001000
010000 

故可能是克里斯,埃普尔或者汤姆 !




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics