有趣的游戏-猜黑白纸

有A,B,C,D,E五个人,每个人的额头上都贴了一张黑色或者白色的纸条,五人对坐,每个人可以看到其他人头上的纸的颜色,但都不知道自己额头上纸的颜色,五人相互观察后:
A说:“我看见有三个人的额头贴的是白纸,一个人是黑纸。”
B说:“我看见其他四个人的额头上贴的是黑纸。”
C说:“我看见有一个人的额头贴的是白纸,三个人是黑纸。”
D说:“我看见其他四个人的额头上贴的是白纸。”
E没发言;
现在已知额头贴黑纸的人说的是谎话,贴白纸的人说的都是实话,求出这五人的头上的贴的都是什么颜色的纸条?

#include<stdio.h>
main()
{
 int a,b,c,d,e;
 printf("0-黑纸  1-白纸\n");//0代表黑色的纸,1代表白色的纸条
 for(a=0;a<=1;a++)
  for(b=0;b<=1;b++)
   for(c=0;c<=1;c++)
    for(d=0;d<=1;d++)
     for(e=0;e<=1;e++)
      if(a&&b+c+d+e==3||!a&&b+c+d+e!=3)//如果a=1,则其说的是真话,!a反之。
       if(b&&a+c+d+e==0||!b&&a+c+d+e!=0)
        if(c&&b+a+d+e==1||!c&&b+a+d+e!=1)
         if(d&&a+b+c+e==4||!d&&a+b+c+e!=4)
         {
          printf("A is %d\n",a);
          printf("B is %d\n",b);
          printf("C is %d\n",c);
          printf("D is %d\n",d);
          printf("E is %d\n",e);
      
         }
}

类似的主要就是把每个人说的话用表达式写出,通过穷举法完成编程!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值