(百例编程)52.黑与白

题目:有A、B、C、D、E五人,每人额头上都帖了一张黑或白的纸。五人对坐,每人都可以看到其它人额头上的纸的颜色。五人相互观察后,
A说:“我看见有三人额头上帖的是白纸,一人额头上帖的是黑纸。”
B说:“我看见其它四人额头上帖的都是黑纸。”
C说:“我看见一人额头上帖的是白纸,其它三人额头上帖的是黑纸。”
D说:“我看见四人额头上帖的都是白纸。”
E什么也没说。

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

/*题目:有A、B、C、D、E五人,每人额头上都帖了一张黑或白的纸。
五人对坐,每人都可以看到其它人额头上的纸的颜色。五人相互观察后,
A说:“我看见有三人额头上帖的是白纸,一人额头上帖的是黑纸。”
B说:“我看见其它四人额头上帖的都是黑纸。”
C说:“我看见一人额头上帖的是白纸,其它三人额头上帖的是黑纸。”
D说:“我看见四人额头上帖的都是白纸。”
E什么也没说。
现在已知额头上帖黑纸的人说的都是谎话,额头帖白纸的人说的都是实话。
问这五人谁的额头是帖白纸,谁的额头是帖黑纸?
*/
//by as1138 2011-04-15

#include 
using namespace std;

int main(void)
{
	int a,b,c,d,e;
	for(a=1;a>=0;--a)
	 for(b=1;b>=0;--b)
	  for(c=1;c>=0;--c)
	   for(d=1;d>=0;--d)
		for(e=1;e>=0;--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))
				)
			{
				if(a)
					cout<<"A贴的是白纸!"<


你可能感兴趣的:(经典百题)