猜兇手
日本某地發生了一件謀殺案,警察通過排查確定殺人兇手必為4個嫌疑犯的一個,
以下為4個嫌疑犯的供詞 :
A說:不是我, // 說話為真,結果是不是就為1,否則 0
B說:是C,
C說:是D,
//D說:C在胡說
已知3個人說了真話,1個人說的是假話,// 也就是說以上四個條件,有三個條件為真,一個為假
我們來先理一下邏輯
//兇手無非就是4人中的一個
//假設 A 是兇手:A假話,B假話,因為只有1個人說假話,那么 A 肯定不是兇手
//假設 B 是兇手, A真話,B假話,C假話,所以 B 不是兇手
//假設 C 是兇手, A真話,B真話,C假話,D真話,那么 C 滿足條件,肯定是兇手
//假設 D 是兇手, A真話, B假話,C真話,D假話,所以 D 不是兇手
#include<stdio.h>
int main()
{
int killer = 0;
for (killer = ‘A’; killer <= ‘D’; killer++)//假設兇手,遍歷4人
{
if (
(killer != ‘A’) // A說:不是我
+(killer == ‘C’) // B說:是C
+(killer == ‘D’) // C說:是D
+(killer != ‘D’)// //D說:C在胡說 ( 不是我 )
== 3 // 判斷是否滿足3個人說真話的條件
)
printf("%c\n", killer); // 滿足條件,我們就把兇手列印出來
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295274.html
標籤:其他
上一篇:The Great Game of Life 人生游戲 by Chromedome PART 2
下一篇:Java——五子棋(1)
