概述
张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。现在问:这三
人中到底谁说的是真话,谁说的是假话?
思路:
每个人说话都有真假可能,用0代表假,1代表真,假如张三说的是真话,那么李四就
为假,假如张三说的是假话,那么李四就为真,判断每个人说真话和说假话的情况(注意在
判断王五的时候假如王五说的是真话那么很显然张李为假,假如王五说的是假话,那么张李
两人至少是有一个是说真话的)
代码:
#include<iostream>
using namespace std;
int main()
{
int x,y,z;
for (x=0;x<2;x++)
for (y=0;y<2;y++)
for (z=0;z<2;z++)
{
if ((!x&&y||x&&!y)//张三说的话可能性
&&(!y&&z||y&&!z)//李四说的可能性
&&(!z&&x+y>0||z&&!x&&!y))//王五说的可能性
{
x?cout<<"张三说真话"<<endl:cout<<"张三说假话"<<endl;
y?cout<<"李四说真话"<<endl:cout<<"李四说假话" <<endl;
z?cout<<"王五说真话"<<endl:cout<<"王五说假话"<<endl;
}
}
return 0;
}
最后
以上就是简单身影为你收集整理的谁在说谎的全部内容,希望文章能够帮你解决谁在说谎所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复