100c之53:说谎族和诚实族
生活随笔
收集整理的這篇文章主要介紹了
100c之53:说谎族和诚实族
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Table of Contents
- 1 問題
- 2 分析
- 3 程序
- 4 結果
問題
說謊族和誠實族是兩個不同的民族。說謊族永遠說謊話,誠實族永遠說實話。謎語博士是個聰明人他要發現誰是說謊族誰是誠實族。謎語博士問了三個人。第一個人說:我們中有兩個來自誠實族。第二個人說:我們中有一個來自誠實族。第三個說:我們中有一個來自誠實族。 問:他們三個到底來自什么族?
分析
每個人說話只有可能狀態:誠實或者說謊。
程序
1: /** 2: * @file 053c.c 3: * @author Chaolong Zhang <emacsun@163.com> 4: * @date Fri Jul 12 19:09:55 2013 5: * 6: * @brief 說謊族和誠實族是兩個不同的民族。說謊族永遠說謊話,誠實族永遠說實話。謎語博士是個聰明人他要發現誰是說謊族誰是誠實族。謎語博士問了三個人。第一個人說:我們中有兩個來自誠實族。第二個人說:我們中有一個來自誠實族。第三個說:我們中有一個來自誠實族。 7: * 問:他們三個到底來自什么族? 8: * 9: */ 10: 11: #include <stdio.h> 12: #define N 2 13: 14: int main(int argc, char *argv[]) 15: { 16: int a,b,c; 17: 18: for (a=0; a < N; ++a){ 19: for (b = 0; b < N; ++b){ 20: for (c = 0; c < N; ++c){ 21: if ( ( ( a&&( a+b+c==2 ) ) || ( !a &&( a+b+c!=2 ) ) ) && 22: ( ( b&&( a+b+c==1 ) ) || ( !b &&( a+b+c!=1 ) ) ) && 23: ( ( c&&( a+b+c==1 ) ) || ( !c &&( a+b+c!=1 ) ) )){ 24: printf ("a is %s\n",a?"honest":"lie"); 25: printf ("b is %s\n",b?"honest":"lie"); 26: printf ("c is %s\n",c?"honest":"lie"); 27: } 28: } 29: } 30: } 31: return 0; 32: }結果
a is lie b is lie c is lie轉載于:https://www.cnblogs.com/chaolong/p/3187087.html
總結
以上是生活随笔為你收集整理的100c之53:说谎族和诚实族的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python ImportError:
- 下一篇: 如何通过cpuinfo信息查看几个物理c