逻辑推理与判断(黑与白)

/**************************************** 
*  File Name  : reasoning.c 
*  Creat Data : 2015.1.26
*  Author     : ZY 
*****************************************/ 

/*逻辑推理与判断*/
/*黑与白*/
/*有A,B,C,D,E五人,每人额头上都贴着一张或黑或白的纸。五人对坐,
每个人都可以看到其他额头上的纸的颜色,但都不知道自己额头上的纸
的颜色,五个人相互观察后,
A说:“我看见有三个人额头上贴的是白纸,一人额头贴的是黑纸。”
B说:“我看见其他四个人额头贴的都是黑纸。”
C说:“我看见有一人额头贴的是白纸,其他三个人额头贴的是黑纸。”
D说:“我看见四人额头上贴的都是白纸。”
E什么也没说。
现在已知额头贴黑纸的人说的是谎话,额头贴白纸的人说的都是实话,
问这五人谁的额头是贴白纸(1),谁的额头是贴黑纸(0)。
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*/


#include <stdio.h>
int main(void)
{
	int a,b,c,d,e;
	for(a = 0;a < 2;a++)
	{
		for(b = 0;b < 2;b++)
		{
			for(c = 0;c < 2;c++)
			{
				for(d = 0;d < 2;d++)
				{
					for(e = 0;e < 2;e++)
					{
						if((a&&b+c+d+e == 3 || !a&&b+c+d+e != 3)
							&&(b&&a+c+d+e == 0 || !b&&a+c+d+e != 0)
							&&(c&&a+b+d+e == 1 || !c&&a+b+d+e != 1)
							&&(d&&a+b+c+e == 4 || !d&&a+b+c+e != 4))
						{
							printf("A is pasted a piece of %s paper on his forehead.\n",a?"white":"black");
						    printf("B is pasted a piece of %s paper on his forehead.\n",b?"white":"black");
							printf("C is pasted a piece of %s paper on his forehead.\n",c?"white":"black");
							printf("D is pasted a piece of %s paper on his forehead.\n",d?"white":"black");
							printf("E is pasted a piece of %s paper on his forehead.\n",e?"white":"black");
						}
					}
				}
			}
		}
	}
	return 0;
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值