偷盗者问题。甲乙丙丁四个嫌疑犯,只有一个是偷盗者。在审讯中,四人都有可能说真话或假话。

甲:乙没偷,丁偷。

乙:我没偷,丙偷。

丙:甲没偷,乙偷。

丁:我没偷。

问谁是小偷。

思路

由于只有一个人是小偷,所以可以枚举四个人分别是小偷,然后再看他们的说法在当前的情况下是否有矛盾。

由于四人都有可能说真话或者假话,所以对他们说的话也要枚举,分别尝试每个人说的是真话或者是假话。

代码

以下代码中a b c d分别代表甲乙丙丁,函数[A/B/C/D][T/F]()即对他们的说法进行判断

#include<stdio.h>
#define FOR(i,a,b) for(int i=a;i<=b;++i)
int a, b, c, d;
typedef int(*FUNC)();
#define JF(X) int X##F(){return !X##T();}
int AT(){ return b == 0 && d == 1; }
int BT(){ return b == 0 && c == 1; }
int CT(){ return a == 0 && b == 1; }
int DT(){ return d == 0; }
JF(A)
JF(B)
JF(C)
JF(D)
int main()
{for (int i = 1; i <= 4; ++i){a = i == 1 ? 1 : 0;b = i == 2 ? 1 : 0;c = i == 3 ? 1 : 0;d = i == 4 ? 1 : 0;FUNC f1[] = { AF, AT };FUNC f2[] = { BF, BT };FUNC f3[] = { CF, CT };FUNC f4[] = { DF, DT };FOR(d1, 0, 1)FOR(d2, 0, 1)FOR(d3, 0, 1)FOR(d4, 0, 1){if (f1[d1]() && f2[d2]() && f3[d3]() && f4[d4]()){printf("小偷:%c\n",'a' + i - 1);printf("真话or假话:\n");printf("a b c d\n");printf("%d %d %d %d\n", d1, d2, d3, d4);puts("-----------");}}}
}

运行结果:

可以发现,其实甲乙丙丁都有可能是小偷。

偷盗者问题。甲乙丙丁四个嫌疑犯,只有一个是偷盗者。在审讯中,四人都有可能说真话或假话相关推荐

  1. 甲乙丙丁四个小偷c语言,魔屠苍生

    第1章 诞生虚空 无垠的虚空,忽然一道红雷从虚空外闪落进来.一时间,整个虚空都在颤抖,仿佛见到了什么可怕东西. 红雷进入虚空后竟诡异凝聚成了个蛋,透过蛋外的红芒,可以模糊看见个人形生物正在蛋里孕养.日 ...

  2. 甲乙丙丁四个人去商店每人买了一台计算机,寒假数学作业一

    寒假作业一 一.选择题: 1.2002)1(-的值 ( ) A. 2000 B.1 C.-1 D.-2000 2.a 为有理数,则2000 11 +a 的值不能是 ( ) A.1 B.-1 C .0 ...

  3. 六年级有甲乙丙三个班c语言,黄瓜怎么做好吃C语言逻辑推理例题(附答案)吝啬的近义词...

    好心情美文网-severely歌词2020年12月1日发(作者:蒋祝平) 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. C语言逻辑推理例题(多重循环) 例1明明找不到铅笔盒了,妈妈对 ...

  4. C语言:甲乙丙三人放鞭炮,求鞭炮响声问题

    **问题描述:**甲.乙.丙三人同时放鞭炮,甲每隔A秒放一个,乙每隔B秒放一个,丙每隔C秒放一个,他们各自放D个,对任意给定的A.B.C.D,求能听到多少声炮响(多个鞭炮一起响算作一声) /*1.甲乙 ...

  5. 即便您是个跑龙套的甲乙丙丁,也该认真对待您自个的角色

    即便您是个跑龙套的甲乙丙丁,也该认真对待您自个的角色.角色无大小,只要全力以赴,尽心尽力做到就好了.   只是效法大哥行了,一条,从一条开始, 感受到难,才是成长中呢!  如不感觉难,就是进步没有那么 ...

  6. python猜名词甲乙丙_用python实现了一下:甲乙两人互猜数字(数理逻辑)

    #-*- coding: utf-8 -*-#!/usr/local/bin/python defis_prime2(number):'''判断数字是否是特殊质数(数学上质数和分解因子相同的数).分解 ...

  7. 监理工程师岁月--甲乙丙方的斗智斗勇

    看起来似乎是房地长的老板掌握了全部主动权,家财万贯,同时和政府官员又多有往来,可谓有权有势有钱,风光占尽,不过事实上任何人都是棋盘中的棋子,在一个多方角逐的战场上,没有任何人能稳操胜券.老板是发薪水的 ...

  8. [C趣味编程]甲乙丙渔夫分鱼

    甲.乙.丙三位渔夫出海打渔,他们随船带了21个筐. 当晚返航时,他们发现有七个筐装满了鱼,还有七个筐装了半筐鱼,另外七只则是空的. 由于他们没有秤,只好通过目测认为7个满筐的重量是相等的,七个半筐的重 ...

  9. 甲乙丙三人一起进行百米赛跑(假定三人均为匀速直线运动)如果当甲到达终点时,乙距终点有5米,丙距终点还有10米,那么当乙到达终点时,丙距终点还有()米

  10. 郭靖和黄蓉竟然是这样死的!---某些人最近看了柴静的《穹顶之下》后狂喷她,这些人可能就是本文中的甲乙丙丁

    转载地址:http://help.3g.163.com/15/0305/11/AJUICPKN00964K7O.html, 作者:龅牙赵 公元1273年,蒙古大军压境.虽然14年前独臂大侠杨过已经飞石 ...

最新文章

  1. 智源青年科学家梁云:异构系统中张量计算的自动调度和优化框架
  2. Maqetta源码运行
  3. [No00009B]win10快捷键大全
  4. Android开源控件----Android显示GIF图像控件------android-gif-drawable
  5. 如何把linux生成镜像,如何把当前ubuntu系统做成镜像
  6. c语言2048代码linux,C语言实现2048小游戏(示例代码)
  7. linux下安装Firefox
  8. 连接spark集群Windows环境搭建
  9. Jenkins管理静态资源
  10. 2021-04-26
  11. java 提取视频缩略图_如何使用java提取视频缩略图或某一帧的图片
  12. c语言逻辑运算符用法大全,【学习笔记】【C语言】逻辑运算符
  13. 2022年化肥行业发展趋势
  14. 服务器开着但显示器键盘没反应,电脑开机 键盘灯正常亮,可以控制,显示器却没反应 是怎么回事...
  15. C语言 基于循环结构的程序设计(PTA)
  16. lbs、agps流程
  17. 大闹天竺里的机器人_王宝强的电影《大闹天竺》都植入了哪些品牌?
  18. 老油条用什么工具写文档?
  19. L2TP客户端之Strongswan移植(一)
  20. 快速查询出物流信息,统计已签收/未签收各多少

热门文章

  1. 自学java后都是怎么找的工作?
  2. 强化学习从K-摇臂老虎机开始
  3. 任务一:实现图形计算功能 1 关键算法(30 分)输入一个正方体的边长(a)计算正方体的体积。要求:结果保留两位小数,使用带参数的方法实现
  4. 河南省软件测试竞赛证书,河南省大学生国家安全知识竞赛
  5. 工业读写器行业解决方案
  6. 有些歌,放在这慢慢听
  7. 前端开发-CSS快速掌握上手知识详细总结
  8. 让css固定定位占据其位置
  9. Matlab根据特征值排序特征向量
  10. wz框架登录功能详解——demo1