黑与白

有 、 、 、 、 五人,每人额头上都帖了一张黑或白的纸。五人对坐,每人都可以看到

其它人额头上的纸的颜色。五人相互观察后,

说: “ 我看见有三人额头上帖的是白纸,一人额头上帖的是黑纸。 

说: “ 我看见其它四人额头上帖的都是黑纸。 

说: “ 我看见一人额头上帖的是白纸,其它三人额头上帖的是黑纸。 

说: “ 我看见四人额头上帖的都是白纸。 

什么也没说。

现在已知额头上帖黑纸的人说的都是谎话,额头帖白纸的人说的都是实话。问这五人谁的 额

头是帖白纸,谁的额头是帖黑纸?

#include <stdio.h>

int main(void)
{
	int a, b, c, d, e;
	
	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) 
							&& (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 %s\n", a ? "white" : "black");
								printf("b %s\n", b ? "white" : "black");
								printf("c %s\n", c ? "white" : "black");
								printf("d %s\n", d ? "white" : "black");
								printf("e %s\n", e ? "white" : "black");
						}
	return 0;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值