当前位置: 代码迷 >> C语言 >> [分享]黑白问题
  详细解决方案

[分享]黑白问题

热度:211   发布时间:2007-10-18 10:20:05.0
[分享]黑白问题

/*有A,B,C,D,E,五人,每人额头上都帖着一张或黑或白的纸。五人对坐,每人都能看见别人的,
但看不见自己的。而且黑的撒谎,白的诚实。
A说:“我看见有三个人的是白纸,一人是黑纸”。
B说:“我看见四个人的都是黑纸”。
C说:“我看见有一个人的是白纸,三个人是黑纸”。
D说:“我看见四个人的都是白纸”。
E什么也没有说。*/
#include <stdio.h>
main()
{
int a,b,c,d,e; //黑色为0,白色为1
for(a=0;a<=1;a++) //5个人头上帖纸的全部可能
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 is %s:\n",a?"White":"Black");
printf("B is %s:\n",b?"White":"Black");
printf("C is %s:\n",c?"White":"Black");
printf("D is %s:\n",d?"White":"Black");
printf("E is %s:\n",e?"White":"Black");
}
}


搜索更多相关的解决方案: 黑白  分享  

----------------解决方案--------------------------------------------------------
学习!
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
要求加精华贴.
----------------解决方案--------------------------------------------------------



这样好了吧
其实我宁愿用回朔来做.

----------------解决方案--------------------------------------------------------

穷举法


----------------解决方案--------------------------------------------------------
是啊,还好只有两种颜色。。。颜色多点的话。。。五重循环。。。会死人的
----------------解决方案--------------------------------------------------------
回溯
----------------解决方案--------------------------------------------------------

讲讲怎么用回朔?


----------------解决方案--------------------------------------------------------
很想知道回溯的算法啊!nuciewth
----------------解决方案--------------------------------------------------------
  相关解决方案