题目:
有A、B、C、D、E五人,每人额头上都帖了一张黑或白的纸。五人对坐,每人都可以看到其它人额头上的纸的颜色。五人相互观察后,
A说:"我看见有三人额头上帖的是白纸,一人额头上帖的是黑纸。"   如果A说真话则 B+C+D+E=3,如果A说假话 则B+C+D+E!=3
B说:"我看见其它四人额头上帖的都是黑纸。"      如果B说真话则 A+C+D+E=0,如果B说假话 则A+C+D+E!=0
C说:"我看见一人额头上帖的是白纸,其它三人额头上帖的是黑纸。"   如果C说真话则A+B+D+E=1,如果C说假话 则 A+B+D+E!=1
D说:"我看见四人额头上帖的都是白纸。" 如果D说真话则A+B+C+E=4,如果D说假话则A+B+C+E!=4
E什么也没说。  
现在已知额头上帖黑纸的人说的都是谎话,额头帖白纸的人说的都是实话。问这五人谁的额头是帖白纸,谁的额头是帖黑纸?

*问题分析与算法设计
假如变量A、B、C、D、E表示每个人额头上所帖纸的颜色,0 代表是黑色,1 代表是白色。根据题目中A、B、C、D四人所说的话可以总结出下列关系:
A说: a&&b+c+d+e==3||!a&&b+c+d+e!=3
如果A说真话则 B+C+D+E==3,如果A说假话 则B+C+D+E!=3 
B说: b&&a+c+d+e==0||!b&&a+c+d+e!=0
如果B说真话则 A+C+D+E==0,如果B说假话 则A+C+D+E!=0
C说: c&&a+b+d+e==1||!c&&a+b+d+e!=1
如果C说真话则A+B+D+E==1,如果C说假话 则 A+B+D+E!=1
D说: d&&a+b+c+e==4||!d&&a+b+c+e!=4
如果D说真话则A+B+C+E=4,如果D说假话则A+B+C+E!=4
穷举每个人额头所帖纸的颜色的所有可能的情况,代入上述表达式中进行推理运算,使上述表达式为"真"的情况就是正确的结果。

#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,e;
for(a=0;a<=1;a++) //A
for(b=0;b<=1;b++) //B
for(c=0;c<=1;c++) //C
for(d=0;d<=1;d++) //D
for(e=0;e<=1;e++)//E
if((a&&b+c+d+e==3||!a&&b+c+d+e!=3)
&&(b&&a+c+d+e==0||!b&&a+c+d+e!=0)
&&(c&&a+b+d+e==1||!c&&a+b+d+e!=1)
&&(d&&a+b+c+e==4||!d&&a+b+c+e!=4))
{
cout<<"A is pasted a piece of "<<(a?"white":"black")<<" paper on his forehead.\n";
cout<<"B is pasted a piece of "<<(b?"white":"black")<<" paper on his forehead.\n";
cout<<"C is pasted a piece of "<<(c?"white":"black")<<" paper on his forehead.\n";
cout<<"D is pasted a piece of "<<(d?"white":"black")<<" paper on his forehead.\n";
cout<<"E is pasted a piece of "<<(e?"white":"black")<<" paper on his forehead.\n";
}
return 0;
}

逻辑推理题-用C++实现(2)--黑与白相关推荐

  1. python考试编程题九道_一道逻辑推理题的程序实现(纯属娱乐)

    一份逻辑推理题的程序求解(纯属自娱自乐) 闲来无聊,看到QQ空间上转载了一份变态推理题的,至少表示我看了十多分钟无处下手,认识的人中有大神居然真的做出来了...我不知道他是们那么做的,不过作为编程爱好 ...

  2. C语言数理逻辑题目,数学逻辑推理题整理,看看你能答对多少

    年龄的秘密 A.B.C三人的年龄一直是一个秘密.将A的年龄数字的位置对调一下,就是B的年龄;C的年龄段两倍是A与B两个年龄的差数;而B的年龄是C的10倍. 请问:A.B.C三人的年龄各是多少? 失误的 ...

  3. 一道逻辑推理题的程序实现(纯属娱乐)

    一份逻辑推理题的程序求解(纯属自娱自乐) 闲来无聊,看到 QQ空间上转载了一份变态推理题的,至少表示我看了十多分钟无处下手,认识的人中有大神居然真的做出来了...我不知道他是们那么做的,不过作为编程爱 ...

  4. C语言逻辑推理题谁是凶手

    C语言逻辑推理题谁是凶手 假定一个岛上住着三类人:骑士.无赖和普通人(也称为间谍).骑士总是说真话,无赖总是说假话,普通人有时说谎话有时说真话.侦探为了调查一宗罪案,而询问了岛上的三个人,小An,小Z ...

  5. 在找工作的过程中,面试一定要经历的逻辑推理题...

    金三银四,估计现在应该有很多粉丝在找工作或者换工作的过程中,那么肯定是要经过面试这一关的.现在很多公司面试,都要求做笔试题.其中有软件测试的基本知识考察,也有不少逻辑推理题,不知道大家有没有遇到过,小 ...

  6. 计算机笔试逻辑推理题,IT面试常见逻辑推理题.doc

    IT面试常见逻辑推理题 1.一个粗细均匀的长直管子,两端开口,里面有4个白球和4个黑球,球的直径.两端开口的直径等于管子的内径,现在白球和黑球的排列是wwwwbbbb,要求不取出任何一个球,使得排列变 ...

  7. 互联网公司笔试-逻辑推理题及解答【精选100道】

    互联网公司笔试-逻辑推理题及解答[精选100道] [1]假设有一个池塘,里面有无穷多的水.现有2个空水壶,容积分别为5升和6升.问题是如何只用这2个水壶从池塘里取得3升的水. 由满6向空5倒,剩1升, ...

  8. 用编程解决 公务员考试 中的逻辑推理题

    一.背景 朋友这几天在准备公务员考试,闲聊之中,给我传来一道题,是一道逻辑推理题,问我答案为何? 让我这个工作好几年的老油条再做这种题,真的伤脑筋,我说:"干脆我用编程做做看吧", ...

  9. [转载]75道逻辑推理题(答案)一

    原文地址:75道逻辑推理题(答案)一作者:娇小猫 [1]假设有一个池塘,里面有无穷多的水.现有2个空水壶,容积分别为5升和6升.问题是如何只用这2个水壶从池塘里取得3升的水. 由满6向空5倒,剩1升, ...

  10. 智鼎逻辑推理题及答案_宝洁和联合利华这类快消500强企业怎么进?

    快消行业可以说一直是高校应届生比较青睐的就业选择,尤其是宝洁.联合利华.强生等这类世界500强企业更是许多应届生挤破头也要进的公司.通过各年份毕业生就业数据来看,显然这类快消公司是十分高傲的,每年通过 ...

最新文章

  1. Splay ---- 2018牛客多校第三场 区间翻转搞区间位移 或者 rope可持久化块状链表
  2. MusicXML 3.0 - DTD 速查
  3. python3精要(35)-wxPython(1)-简介与开源协议
  4. 无法获得锁 /var/lib/dpkg/lock
  5. 使用Go开发gRPC
  6. python根据数据生成图像_从三个numpy数组生成图像数据
  7. 分析了 9 万条程序员招聘数据,Python 薪资竟反超 Java?
  8. 【计算几何】bzoj2338 [HNOI2011]数矩形
  9. Exchange 2016之用EMS配置全局OWA语言和时区设置
  10. POJ3258River Hopscotch(二分)
  11. 栈的基本操作(详细)
  12. java基本数据从低到高_java基本数据类型之间的转换
  13. DNF调整建议与新团本策划
  14. 压力单位MPa、Psi和bar之间换算公式
  15. 图标搜索引擎:Findicons
  16. 心理学在生活中的表现和应用_心理学在日常工作和社会生活中的应用.ppt
  17. js操作元素相关案例
  18. 2009.09.30 随想
  19. 第一节 花的结构和类型
  20. 有哪些比较好的wince 播放器 支持硬解的

热门文章

  1. linux摄像头内核驱动开发,Linux系统下USB摄像头驱动开发
  2. ppt快速美化四步法
  3. 简单解析一下,实施MES管理系统后有哪些效益
  4. AWS中负载均衡器类型
  5. python中关于requests里的timeout()
  6. kafka学习七:kafka之集群篇
  7. python 打开文件夹与开启文件的几种方式
  8. 2018年软工第二次结对作业
  9. 量化投资03---小市值轮动因子---准备工作01
  10. 阿里巴巴国际站新手运营攻略