谁在说慌

来源:互联网 发布:天涯明月刀mac 编辑:程序博客网 时间:2024/05/03 13:06

张三说李四说谎,李四说王五说谎,王五说张三,李四都说谎。到底谁在说谎?

 


解:用a,b,c分别代表张三,李四和王五,且假设取0时说真话,取1时说假话。则有下面的逻辑:
通过程序,输出不矛盾的各值。

#include<iostream.h>
void main(){
 int a,b,c;
 for(a=0;a<2;a++)
  for(b=0;b<2;b++)
   for(c=0;c<2;c++)
   {
    if(a==0)
     if(b==1)
      if(c==0)
       if(a==1&&b==1)
        cout<<a<<" "<<b<<" "<<c;
       if(b==0)
        if(c==1&&a==1)
         if(a==0||b==0)
          cout<<a<<" "<<b<<" "<<c;
         if(c==0)
          if(a==0&&b==1)
           if(b==0)
            cout<<a<<" "<<b<<" "<<c;
   }
}

0 0