日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

判断谁说真话,谁说假话

發(fā)布時間:2024/1/18 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 判断谁说真话,谁说假话 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

A,B,C,D,E共5個人圍成一圈,每人頭上戴了一頂帽子,帽子可能是黑色或白色。戴白帽子的人說真話,戴黑帽子的人說假話。

A說:我看到3個人戴白帽子,1個人戴黑帽子;

B說:我看到4個人戴黑帽子;?

C說:我看到1個人戴白帽子,3個人戴黑帽子;

D說:我看到4個人戴白帽子。

E什么話都沒說。

編程計算出這5個人誰戴白帽子、誰戴黑帽子。?

【思路】

戴白帽子算做1(真),戴黑帽子算做0(假)。

那么,如果A戴白帽子,就是B+C+D+E==3;如果A戴黑帽子,就是B+C+D+E!=3。

因此可以得到:((A&&((B+C+D+E)==3)) || (!A&&((B+C+D+E)!=3)))。

同理對B、C、D的說法可以建立計算公式。

最后,遍歷A、B、C、D、E的每一種戴帽的可能,把符合計算公式的那些組合值顯示出來就可以了。

void findout(void) {int a=0, b=0, c=0, d=0, e=0;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==1)&&(b+c+d+e==3)) || ((a==0)&&(b+c+d+e!=3)))&&(((b==1)&&(a+c+d+e==0)) || ((b==0)&&(a+c+d+e!=0)))&&(((c==1)&&(a+b+d+e==1)) || ((c==0)&&(a+b+d+e!=1)))&&(((d==1)&&(a+b+c+e==4)) || ((d==0)&&(a+b+c+e!=4)))){printf("a=%d, b=%d, c=%d, d=%d, e=%d\n", a, b, c, d, e);}}}

總結

以上是生活随笔為你收集整理的判断谁说真话,谁说假话的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。