生活随笔
收集整理的這篇文章主要介紹了
凶手(思维)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
巴斯維克命案抓住了六個嫌疑犯,他們的口供如下:
A:我不是罪犯
B:A、C中有一個是罪犯
C:A和B說了假話
D:C和F說了假話
E:其他五個人中,只有A和D說了真話
F:我是罪犯
他們中只有一半說了真話,兇手只有一個。
本題可能有多種可能性,即正確答案(找到唯一的兇手)可能有多個,但每一個可能的答案(某一個是兇手)都滿足上述口供。
請編程找出可能的兇手輸出。
(假設唯一的兇手是A或者D或者E,則輸出結果為三行,按字母順序依次輸出)
輸入
無
輸出
無
樣例輸入
無
樣例輸出
A
D
E
思路:反正就一個兇手,我們就假設每一個人是兇手,看看有幾個人正確就可以了。
代碼如下:
#include<bits/stdc++.h>
#define ll long long
using namespace std
;int a
[10];inline int A()
{if(a
[1]==1) return 0;else return 1;
}
inline int B()
{if(a
[1]==1||a
[3]==1) return 1;else return 0;
}
inline int C()
{if(!A()&&!B()) return 1;else return 0;
}
inline int F()
{if(a
[6]==1) return 1;else return 0;
}
inline int D()
{if(!C()&&!F()) return 1;else return 0;
}
inline int E()
{if(A()&&D()&&!B()&&!C()&&!F()) return 1;else return 0;
}
int main()
{for(int i
=0;i
<6;i
++){memset(a
,0,sizeof(a
));a
[i
+1]=1;if(A()+B()+C()+D()+E()+F()==3) cout
<<(char)('A'+i
)<<endl
;}return 0;
}
努力加油a啊,(o)/~
總結
以上是生活随笔為你收集整理的凶手(思维)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。