永发信息网

张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。现在问:这三人中到底谁说的是真话,谁

答案:4  悬赏:20  手机版
解决时间 2021-01-02 02:06
张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。现在问:这三人中到底谁说的是真话,谁说的是假话?用C语言编写程序
最佳答案
李四说的真话。
以下内容转载自:网页链接
(第一篇博文)
    今天在一个交流群里见他们无聊,然后找到之前收藏的一些c语言题目放出去想让他们做,结果反倒是自己不会做,于是花了很多时间去想。
  原题:张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。现在问:这三人中到底谁说的是真话,谁说的是假话?
  其实问题本身并不难,只是一开始想多了,陷入死循环。
  那这个问题的突破口在哪里呢?
  不管谁说谎,每个人都有两个状态  真和假
  由此,我们就可以确定,我们有循环嵌套:





 这时候,我们只要对zhangsan lisi  wangwu  这三个变量进行逻辑判断即可
  逻辑怎么判断呢?
  根据题目,我们一段一段的分析:
  张三说李四在说谎  : 假设zhangsan 就是正确的,那么有   zhangsan == !lisi
  李四说王五在说谎  :同理,有 lisi == !wangwu
  王五说张三和李四都在说谎 : 有  wangwu ==((!zhangsan)&&(!lisi))

  根据数学带入解方程的方法,我们其中的两个两个相互代入,得到两个式子,得到:
  zhangsan == wangwu
  lisi ==((!zhangsan)&&(!lisi))
  那我们的结果只要符合上边两个要求即可:

  if((zhangsan == wangwu)&&(lisi ==((!zhangsan)&&(!lisi))))




全部回答
王五,因为它讲的话自相矛盾
用离散数学表示: 设:x({a,b,c} f(x): x说谎 g(x,y): x说y说谎 设a 张三,b李四,c王五 g(a,b) g(b,c) g(c,a) g(c,b) 求f(a),f(b),f(c) 设f(a)为真 g(a,b) g(a,b)-> f(b) g(a,b),g(b,c) ┐f(a),┐f(b) 所以g(a,b)为假 同理。
最佳答案: 李四说的是真话,张三和王五说谎。张三和王五都说李四说谎,那我们假定是真的,则王五说“张三说谎”也是真的了,前后矛盾不成立。假定李四说的是真话,则...
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求LPL英雄联盟背景音乐,进游戏的和胜利音乐
支付宝应用名称是什么
幼师教育随笔怎么写
狮子座照片
以及制品什么意思
X染色体较Y染色体携带遗传信息在哪些方面更丰
大学生如何利用互联网创业??
单选题下列表述中,与工业革命不符的是A.首先
dnf大转移异界装备带精什么意思
填空冷冷清清的什么
桑树什么时候扦插
思乡的文章为什么一般都在秋天写呢
仰望雪山阅读答案
新版手机淘宝设置在哪
医疗废弃物暂存间最大存储能力怎么计算
推荐资讯
燥热体质的人能喝什么茶
中国教育部的举报电话和浙江教育厅的举报电话
天龙八部李延宗是谁
商品流通公式与资本流通公式相比较,其区别有
济南到广饶多少公里
怎么让水泥地面更滑一些
和好朋友吵架后想和好怎么办
萍乡到新余仙女湖开车怎样走
怎样轻易的打开椰子壳?
通俗唱法一般男生的音域是多少
俦怎么读音是什么意思
九秩耄是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?