问题描述:

有A、B、C、D、E这5个人,每个人额头上都帖了一张黑或白的纸。5人对坐,每 个人都可以看到其他人额头上纸的颜色。5人相互观察后:

  • A说:“我看见有3人额头上贴的是白纸,1人额头上贴的是黑纸。”
  • B说:“我看见其他4人额头上贴的都是黑纸。”
  • C说:“我看见1人额头上贴的是白纸,其他3人额头上贴的是黑纸 。”
  • D说:“我看见4人额头上贴的都是白纸。”
  • E什么也没说。

现在己知额头上贴黑纸的人说的都是谎话,额头贴白纸的人说的都是实话。问这5人 谁的额头上贴的是白纸,谁的额头上贴的是黑纸?

问题分析:

呃呃,刚开始推出来了正确答案,被学弟问的不会用代码写了...

分析每个人说的话,对于每个人来说只有两种情况,说谎或者说的是真话,把所有情况暴力枚举,选出来合适的答案即可

求解逻辑推理类问题的关键就是写出正确的逻辑表达式。将问题分析中列出的限定条件用程序语言描述清楚后就可以使用穷举法来获得最终的判断结果。

用 0 表示贴的是黑纸,1 表示贴的是白纸

判断条件:

 (a && (b+c+d+e==3) || !a && (b+c+d+e!=)) &&
(b && (a+c+d+e==0) || !b && (a+c+d+e!=)) &&
(c && (a+b+d+e==1) || !c && (a+b+d+e!=)) &&
(d && (a+b+c+e==4) || !d && (a+b+c+e!=))

代码:

 #include<stdio.h>
int main()
{
int a, b, c, d, e; /*0表示黑色,1表示白色*/
for(a=; a<=; a++) /*穷举五个人额头帖纸颜色的全部可能*/
for(b=; b<=; b++)
for(c=; c<=; c++)
for(d=; d<=; d++)
for(e=; e<=; e++)
if( (a && (b+c+d+e==) || !a && (b+c+d+e!=)) &&
(b && (a+c+d+e==) || !b && (a+c+d+e!=)) &&
(c && (a+b+d+e==) || !c && (a+b+d+e!=)) &&
(d && (a+b+c+e==) || !d && (a+b+c+e!=))
)
{
printf("A额头上的贴纸是%s色的.\n",a?"白":"黑");
printf("B额头上的贴纸是%s色的.\n",b?"白":"黑");
printf("C额头上的贴纸是%s色的.\n",c?"白":"黑");
printf("D额头上的贴纸是%s色的.\n",d?"白":"黑");
printf("E额头上的贴纸是%s色的.\n",e?"白":"黑");
}
return ;
}

最新文章

  1. niginx 负载均衡
  2. 解决ThinkPHP Call to a member function assign() on a non-object
  3. Java 7 中的Switch 谈 Java版本更新和反编译知识
  4. selenium+eclispse里代码备注
  5. C#操作字符串方法总结&lt;转&gt;
  6. JavaScript - 变量,作用域,内存
  7. VSS迁移备忘
  8. dir cmd、the DIR Command、windows
  9. 802.11 wireless 六
  10. By类的使用
  11. Ubuntu下Qt-4.7.1的静态编译
  12. nopCommerce架构分析系列(二)数据Cache
  13. Windows 多用户远程访问 Ubuntu 14.04桌面
  14. R语言中的if-else语句写法
  15. JVM 运行时数据区总结 栈 堆 堆大小配置总结
  16. c# ef 排序字段动态,构建动态Lambda和扩展方法OrderBy
  17. tongweb安装后无法启动问题
  18. app v2界面
  19. nginx中server的匹配顺序
  20. kettle7.1无法从Mongo中读取数据

热门文章

  1. 【NOIP2016提高A组五校联考4】label
  2. 019:re_path函数详解
  3. Fiddler的工作原理与主菜单介绍(一)
  4. npm 安装与卸载模块
  5. 【UOJ #210】【UER #6】寻找罪犯
  6. 使用Eigen遇到恶心报错
  7. Struts2漏洞修复总结
  8. centos7没有IP地址
  9. leetcode-mid-dynamic programming- Longest Increasing Subsequence-NO
  10. 通过同步上下文方式更新winform中的控件信息