下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第C語(yǔ)言猜兇手及類似題目的實(shí)現(xiàn)示例目錄描述:思路及分析:現(xiàn)在,我們來(lái)看和它相似的第二道題目:描述:思路及分析:第三道題目:描述:思路及分析:總結(jié):
描述:
日本某地發(fā)生了一件謀殺案,警察通過(guò)排查確定殺人兇手必為4個(gè)嫌疑犯的一個(gè)。
以下為4個(gè)嫌疑犯的供詞:
A說(shuō):不是我。
B說(shuō):是C。
C說(shuō):是D。
D說(shuō):C在胡說(shuō)
已知3個(gè)人說(shuō)了真話,1個(gè)人說(shuō)的是假話。
現(xiàn)在請(qǐng)根據(jù)這些信息,寫一個(gè)程序來(lái)確定到底誰(shuí)是兇手。
思路及分析:
從來(lái)沒(méi)有做過(guò)類似題目的同學(xué)第一次看見(jiàn)這道題,可能有點(diǎn)發(fā)懵。然后開(kāi)始考慮假設(shè),排列組合,枚舉等等...但是這道題的代碼結(jié)果會(huì)讓你大吃一驚。
首先,要考慮的是如何用代碼表示A,B,C,D這四個(gè)人說(shuō)的話?我們定義一個(gè)char變量killer來(lái)表示兇手。最能想到的就是如果某個(gè)人說(shuō)的話是成立的話,將他的結(jié)果為1(類似于bool類型),否則就是0。這樣的想法是正確的。A說(shuō),不是A,那么,可以表示為killer!=A。判斷成立的話,他就會(huì)返回1,否則,返回0。類似的,其他3個(gè)人說(shuō)的話也可以這樣來(lái)表示。最后,根據(jù)3個(gè)人說(shuō)了真話,1個(gè)人說(shuō)了假話得知返回的總和為3。比如,我們假設(shè)A就是兇手,那么根據(jù)四個(gè)人說(shuō)的話,A說(shuō)了假話,B也說(shuō)了假話,和條件是不符合的。這樣之后,只是判斷了A的情況,B,C,D的情況還沒(méi)有判斷,只需要加一個(gè)循環(huán)就可以了。
C語(yǔ)言代碼如下:
#includestdio.h
intmain(void)
charkiller='A';
for(killer='A';killer='D';killer++)
if((killer!='A')+(killer=='C')+(killer=='D')+(killer!='D')==3)
printf("thekilleris%c",killer);
return0;
}
結(jié)果如下:
現(xiàn)在,我們來(lái)看和它相似的第二道題目:
描述:
兩個(gè)乒乓球隊(duì)進(jìn)行比賽,甲隊(duì)為ABC三人;乙隊(duì)為XYZ三人;抽簽決定比賽名單,有人向隊(duì)員打聽(tīng)比賽的名單,A說(shuō)他不和X比,C說(shuō)他不和Z比。請(qǐng)編程輸出所有可能的對(duì)陣方案,并統(tǒng)計(jì)方案的個(gè)數(shù)。
思路及分析:
這道題和猜兇手那道題目的方法是一致的,都是直接把題目的文字描述轉(zhuǎn)換為代碼描述。直接使用for循環(huán)即可。代碼如下:
#includestdio.h
intmain(void)
charA=0;
charB=0;
charC=0;
for(A='X';A='Z';A++)
for(B='X';B='Z';B++)
for(C='X';C='Z';C++)
if((A!='X')+(C!='Z')==2)
if(A!=BB!=CC!=A)
printf("AVS%c,BVS%c,CVS%c\n",A,B,C);
return0;
}
結(jié)果如下:
第三道題目:
5位運(yùn)動(dòng)員參加了10米臺(tái)跳水比賽,有人讓他們預(yù)測(cè)比賽結(jié)果:
A選手說(shuō):B第二,我第三;
B選手說(shuō):我第二,E第四;
C選手說(shuō):我第一,D第二;
D選手說(shuō):C最后,我第三;
E選手說(shuō):我第四,A第一;
比賽結(jié)束后,每位選手都說(shuō)對(duì)了一半,請(qǐng)編程確定比賽的名次。
思路及分析:
暴力破解法即可。代碼如下:
#includestdio.h
intmain(void)
inta=0,b=0,c=0,d=0,e=0;
for(a=1;aa++)
for(b=1;bb++)
for(c=1;cc++)
for(d=1;dd++)
for(e=1;ee++)
if(((b==2)+(a==3)==1)//B第二,我第三
((b==2)+(e==4)==1)//我第二,E第四
((c==1)+(d==2)==1)//我第一,D第二
((c==5)+(d==3)==1)//C最后,我第三
((e==4)+(a==1)==1))//我第四,A第一
if(a*b*c*d*e==120)
printf("%d%d%d%d%d\n",a,b,c,d,e);
return0;
}
總結(jié):
最后一道題目來(lái)看,出現(xiàn)了驚人的五個(gè)for循
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 街道辦事處衛(wèi)生評(píng)比制度
- 餐廳衛(wèi)生許可管理制度
- 豆腐車間衛(wèi)生制度
- 班級(jí)衛(wèi)生獎(jiǎng)罰管理制度
- 2026年建筑結(jié)構(gòu)設(shè)計(jì)與施工管理專業(yè)題目
- 2026年國(guó)際支付安全認(rèn)證培訓(xùn)
- 量子編程語(yǔ)言性能評(píng)估
- 2026年上半年通化市事業(yè)單位公開(kāi)招聘應(yīng)征入伍高校畢業(yè)生備考題庫(kù)帶答案詳解(考試直接用)
- 2026山東石油化工學(xué)院人才招聘80人備考題庫(kù)含答案詳解(黃金題型)
- 2026北京航空航天大學(xué)可靠性與系統(tǒng)工程學(xué)院聘用編軟件測(cè)試工程師F崗招聘2人備考題庫(kù)含答案詳解(突破訓(xùn)練)
- 2026年山東省威海市單招職業(yè)傾向性測(cè)試題庫(kù)附答案解析
- 2026新疆伊犁州新源縣總工會(huì)面向社會(huì)招聘工會(huì)社會(huì)工作者3人考試備考試題及答案解析
- 積極思想培訓(xùn)
- 2026春譯林8下單詞表【Unit1-8】(可編輯版)
- 2026年《必背60題》抖音本地生活BD經(jīng)理高頻面試題包含詳細(xì)解答
- 駱駝祥子劇本殺課件
- 電影短片拍攝實(shí)踐課件
- 2025首都文化科技集團(tuán)有限公司招聘9人考試筆試備考題庫(kù)及答案解析
- 《經(jīng)典常談》導(dǎo)讀課件教學(xué)
- 農(nóng)業(yè)科技合作協(xié)議2025
- 護(hù)理文書書寫規(guī)范與法律風(fēng)險(xiǎn)規(guī)避
評(píng)論
0/150
提交評(píng)論