66-甲说乙说谎,乙说丙说谎,丙说甲乙说谎
来源:互联网 发布:java 时间上午下午 编辑:程序博客网 时间:2024/05/01 20:47
#include <stdio.h>/*三个嫌疑犯在法官面前各执一词,甲说:乙在说谎;乙说:丙在说谎;丙说:甲乙两人都在说谎。法官为了难,甲乙丙三人到底谁在说谎,谁说的是真话?题目分析:这是一道十分有趣的逻辑推理问题。解决这类逻辑推理问题最简单直观的方法是使用穷举法。甲乙丙三人中任何人所说的话无外乎有两种可能,即真和假。如果用1表示真,用0表示假,甲乙丙三人所说的话的真假情况限定在以下范围内。*/ int main(int argc, char *argv[]){int a,b,c;for(a=0; a<2; a++)for(b=0; b<2; b++)for(c=0; c<2; c++)if((a&&!b || !a&&b) && (b&&!c || !b&&c) && (c &&a+b == 0 || !c&&a+b != 0)){printf("甲说的话是%s\n",a?"真":"假");printf("乙说的话是%s\n",b?"真":"假");printf("丙说的话是%s\n",c?"真":"假");}}
分析的过程:
假设甲,乙,丙三个人所说的话用变量a,b,c表示,0代表说假话,1代表说真话。
我们可以列出如下的式子:
if a == 1 else b = 0
if a == 0 else b = 1
if b == 1 else c = 0
if b == 0 else c = 1
if c == 1 else a+b = 0
if c == 0 else a+b = 1
0 0
- 66-甲说乙说谎,乙说丙说谎,丙说甲乙说谎
- 说谎
- 说谎
- 甲说乙在说谎
- 寂寞说谎
- C语言——甲说乙在说谎
- 歌词(1)说谎
- 九段说谎高手
- 我不会说谎
- 说谎的放羊娃
- 谁在说谎
- 谁在说谎
- 谁在说谎
- 如何判断求职者说谎
- 四个人C说谎
- 不会说谎的序列
- 谁在说谎
- 请不要说谎
- 手机文件读写
- 年会·看明年·MARK!
- CL邀请码3(根据网页匹配邀请码)
- FreeImage 结合 VB6 使用技巧
- CL邀请码4(暗码转换为明码)
- 66-甲说乙说谎,乙说丙说谎,丙说甲乙说谎
- CL邀请码5(自动注册)
- 利用Spring AOP中的引入解决java无法多继承问题
- CL邀请码6(黑名单)
- 注册界面 用javascript检查输入信息格式是否正确 完整版
- 如何用用WordPress博客模板搭建个人网站?
- Oracle存储过程读取文件例子--UTL_FILE
- Java String类
- CL邀请码(后记)