一直以來以爲推理題目是行測題,用草稿畫畫推理就可以做出答案,第一次留意到這種問題還是挺懵的,要用編程語言來解決推理題目。以下面這種題目來看看用C語言怎麼解決這個問題的。
在廣州某個夜晚,發生一起謀殺案,警察通過排查確定殺人兇手是 4 個嫌疑中的一個,以下是四個人的說詞
A 說:不是我
B 說:是 C
C 說:是 D
D 說:C 在胡說
其中只有 3 個人說了真話,1 個人說了假話,現在根據這些信息,寫一個程序來確定哪個是兇手。
如果你是求職於國企類,銀行類,公務員的話,這種題目就是行測類題目,突破口就在“矛盾”的地方,往往找出矛盾的地方就可以突破這道題了。
這裏的矛盾就在於:B的觀點和D觀點,他們的觀點是相反的,同時這裏4人4個觀點,3對1錯,那麼B和D肯定1錯1對,那麼A和C的觀點肯定是對的,C說兇手是D,那麼兇手就是D。
現在我們要考慮用C語言來解決這個問題,這裏有4個人,我們可以依次設定每個人是兇手,然後把這種情況下代入到ABCD這4個觀點,同時滿足3對1錯的情況。代碼如下:
#include <stdio.h>
int main(){
char murder;
for(murder='A';murder<='D';murder++){
if((murder!='A')+(murder=='C')+(murder=='D')+(murder!='C')==3){
printf("murder is %c\n",murder);
break;
}
}
return 0;
}
輸出之後果然是D。以上就是推理題用編程去解決的方法。