逻辑推理与判断(谜语博士的难题(2))
来源:互联网 发布:整形网络咨询技巧 编辑:程序博客网 时间:2024/05/17 06:10
/**************************************** * File Name : reasoning.c * Creat Data : 2015.1.26* Author : ZY *****************************************/ /*逻辑推理与判断*//*谜语博士的难题(2)*//*两面族是荒岛上的一个新民族,他们的特点是说话真一句假一句且真假交替,如果第一句为真,则第二句为假;如果第一句为假的,则第二句就是真的,但是第一句是真是假没有定律。谜语博士遇到三个人,知道他们分别来自三个不同的民族:诚实族,说谎族和两面族,三人并肩站在博士面前。博士问左边的人:“中间的人是什么族的?”,回答:“诚实族的人”博士问中间的人:“你是什么族的?”,回答:“两面族的”博士问右边的人:“中间的人究竟是什么族的?”,回答:“说谎族的”请问这三个人都是那个民族的? 三个人来自三个民族 a+aa != 2&&b+bb != 2&&c+cc != 2&& a+b+c == 1&&aa+bb+cc == 1 左边人的回答 a&&!aa&&b&&!bb||!a&&!b 中间人的回答 !b 右边人的回答c&&!b&&!bb||(!c&&!cc)&&(b||bb)||!c&&cc*/#include <stdio.h>int main(void){int a,b,c,aa,bb,cc;for(a = 0;a < 2;a++){for(b = 0;b < 2;b++){for(c = 0;c < 2;c++){for(aa = 0;aa < 2;aa++){for(bb = 0;bb < 2;bb++){for(cc = 0;cc < 2;cc++){if((a+aa != 2&&b+bb != 2&&c+cc != 2&& a+b+c == 1&&aa+bb+cc == 1)&&(a&&!aa&&b&&!bb||!a&&!b)&&!b&&(c&&!b&&!bb||(!c&&!cc)&&(b||bb)||!c&&cc)){printf("The man stand on left is a %s.\n",aa?"double-dealer":(a?"honest":"lier"));printf("The man stand on center is a %s.\n",bb?"double-dealer":(b?"honest":"lier"));printf("The man stand on right is a %s.\n",cc?"double-dealer":(c?"honest":"lier"));}}}}}}}return 0;}
/*谜语博士遇到三个人,便问第一个人:“你是什么族的?”,答:“诚实族的”。问第二个人:“你是什么族的?”,答:“说谎族的。”又问第二个人:“第一个人真的是诚实族的吗?”,答:“是的”问第三个人:“你是什么族的?”,答:“诚实族的”又问第三个人:“第一个人是什么族的?”,答:“两面族的。” 三个人来自三个民族 a+aa != 2&&b+bb != 2&&c+cc != 2&& a+b+c == 1&&aa+bb+cc == 1 第一个人说的话 a||!a||aa(无用) 第二个人说的话 bb&&a 第三个人说的话c&&aa||(!c&&!aa)||(cc&&aa)*/#include <stdio.h>int main(void){int a,b,c,aa,bb,cc;for(a = 0;a < 2;a++){for(b = 0;b < 2;b++){for(c = 0;c < 2;c++){for(aa = 0;aa < 2;aa++){for(bb = 0;bb < 2;bb++){for(cc = 0;cc < 2;cc++){if((a+aa != 2&&b+bb != 2&&c+cc != 2&& a+b+c == 1&&aa+bb+cc == 1)&&(bb&&a)&&(c&&aa||(!c&&!aa)||(cc&&aa))){printf("The man stand on left is a %s.\n",aa?"double-dealer":(a?"honest":"lier"));printf("The man stand on center is a %s.\n",bb?"double-dealer":(b?"honest":"lier"));printf("The man stand on right is a %s.\n",cc?"double-dealer":(c?"honest":"lier"));}}}}}}}return 0;}
0 0
- 逻辑推理与判断(谜语博士的难题(2))
- 逻辑推理与判断(谜语博士的难题(1))
- 逻辑推理与判断(谜语博士的难题)
- 逻辑推理题-用C++实现(3)--谜语博士的难题1
- 逻辑推理题-用C++实现(4)--谜语博士的难题1-思考题
- (百例编程)54.谜语博士的难题(2)
- 谜语博士的难题2
- (百例编程)53.谜语博士的难题(1)
- 谜语博士的难题--两面族
- 逻辑推理与判断(新娘与新郎)
- 逻辑推理与判断(黑与白)
- 逻辑推理与判断(委派任务)
- 逻辑推理与判断(谁在说谎)
- 逻辑推理与判断(谁是窃贼)
- 逻辑推理与判断(区分旅客国籍)
- [ACM]博士的难题(异或)
- 逻辑推理与判断(哪个大夫哪天值班)
- 逻辑推理与判断(谁家孩子跑得快)
- 【 D3.js 选择集与数据详解 — 4 】 enter和exit的处理方法以及处理模板
- 南邮1004:线性表操作
- 百度敏捷之旅
- Java常用类库..【Pnoter】
- 通过阅读、分析和翻译二进制格式的Java Class文件学习Java Class的技术
- 逻辑推理与判断(谜语博士的难题(2))
- Android 实现形态各异的双向侧滑菜单 自定义控件来袭
- ZendDebugger.dll
- LDA Topic Model Matlab 代码简介
- Ubuntu下QT的安装详细教程
- 黑马程序员Android第55期——Servlet API 总结
- CentOS/Linux 修改默认SSH端口号
- 最近...
- 1.27工作日志