逻辑推理题 C++实现(2) 黑与白
发布时间
阅读量:
阅读量
题目:
有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所述:如果a为真且b+c+d+e等于3,或者a为假且b+c+d+e不等于3,则成立;即 a&&(b+c+d+e==3)||!a&&(b+c
全部评论 (0)
还没有任何评论哟~
