JVA 题目 谁是窃贼

JVA 题目 谁是窃贼,第1张

JAVA语言编写如下:

假设A、B、C、D分别代表四个人,变量的值为1代表该人是窃贼

甲说:”乙没有偷,是丁偷的。” B+D=1

乙说:“我没有偷,是丙偷有。” B+C=1

丙说:“甲没有偷,是乙偷的。” A+B=1

丁说:“我没有偷。” A+B+C+D=1

在这里丁说的话太笼统无法判断,而其他3人都指出了2个人。将他们3个人的话取

交集符合的就是窃贼:B+D==1&&B+C==1&&A+B==1

#include<stdio.h>

int main()

{

int i,j,a[4]

for(i=0i<4i++) /*假定只有第i个人为窃贼*/

{

for(j=0j<4j++) /*将第i个人设置为1表示窃贼,其余为0*/

if(j==i)a[j]=1

else a[j]=0

if(a[3]+a[1]==1&&a[1]+a[2]==1&&a[0]+a[1]==1) /*判断条件是否成立*/

{

printf("盗窃者是: ")/*成立*/

for(j=0j<=3j++) /*输出计算结果*/

if(a[j])

printf("%c.",j+'A')

printf("\n")

}

}

}

窃贼是B,也就是乙

推理题目,一个一个的去验证,例如:假设甲是窃贼,那么他的话就是假的,乙说的也是假的,那么丙没有偷,丙说的是真的,那么丁偷了,这就矛盾了!

编程的话,将命题改写成符号,例如甲 aa = 0表示甲说甲没有偷。ba=0表示乙说甲没有偷,bc=1表示乙说是丙偷的,若假设a=1,那么ba=0为假,bc=1也为假,那么cc=0为真,cd=1也为真,a=1和d=1冲突就不行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11533764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存