张三说李四说谎,李四说王五说谎,王五说张三,李四都说谎。到底谁在说谎?
解:用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;
}
}