C 輕鬆解決世紀迷題

2021-04-07 00:17:56 字數 2750 閱讀 2275

下面的問題相信很多人都聽過:

1 有五棟五種顏色的房子

2 每一位房子的主人國籍都不同

3 這五個人每人只喝一種飲料,只抽一種牌子的香菸,只養一種寵物

4 沒有人有相同的寵物,抽相同牌子的香菸,喝相同的飲料

1、 英國人住在紅房子裡

2 、瑞典人養了一條狗

3 、丹麥人喝茶

4 、綠房子在白房子左邊

5 、綠房子主人喝咖啡

6 、抽pall mall煙的人養了乙隻鳥

7 、黃房子主人抽dunhill煙

8 、住在中間那間房子的人喝牛奶

9 、挪威人住第一間房子

10 、抽混合煙的人住在養魚人的旁邊

11 、養馬人住在dunhill煙的人旁邊

12 、抽blue master煙的人喝啤酒

13、 德國人抽prince煙

14 、挪威人住在藍房子旁邊

15 、抽混合煙的人的鄰居喝礦泉水

問題是: 誰養魚?

這道迷題出自2023年柏林的德國邏輯思考學院。據說世界上只有2%的人能出答案。就連大名鼎鼎的愛因斯坦也成為此題大傷腦筋,所以這道題也經常被國內外知名公司用做面試題目,相信許多朋友都只做出過乙個答案,如果碰巧你屬於那98%該怎麼辦呢。沒關係,如果這個問題用電腦來解決就非常easy了。

程式**如下:

using system;

namespace netsafe.math,,

,,

};///

/// answer用來存放答案

///

int[,] answer=new int[6, 6];

int[,] all=new int[6,122];

int count=1;

int nlevel = 0;

int list=new int[6];

public static void main(string args)

void run()}}

}}

}///

/// 非常典型的用遞迴實現排列組合演算法。

///

public void p()   

for(ncount=1;ncount<=5;ncount++)

if(key==0)

}nlevel--;

}///

/// 寫入all陣列

///

void writeall()

count++;

}int  find(int i,int j)

}return -1;

}///

/// 將答案列印出來

///

void write_answer()

console.writeline();

}console.writeline();}}

}說明:程式使用c#,在microsoft visual  studio.net下編譯執行通過。如果你沒有microsoft visual c# 需要安裝microsoft(r) .net framework sdk ,把上述**儲存到ayst.cs,然後在命令列模式下執行csc ayst.cs ,然後執行ayst.exe也可以。這個程式是很久之前寫的。當時只是為了得到答案,所以程式寫的比較亂。讓同行見笑了。以下是程式的執行結果(答案一總7種,沒想到吧):

黃房子,藍房子,紅房子,綠房子,白房子,

挪威人,丹麥人,英國人,德國人,瑞典人,

dunhill,混合煙,pall mall,prince,blue    master,

礦泉水,茶,牛奶,咖 啡, 啤酒 ,

魚,馬,鳥, 恐龍,狗,

綠房子,藍房子,黃房子,紅房子,白房子,

挪威人,德國人,瑞典人,英國人,丹麥人,

混合煙,prince,dunhill,blue      master,pall mall,

咖 啡,礦泉水,牛奶, 啤酒 ,茶,

恐龍,魚,狗,馬,鳥,

綠房子,藍房子,白房子,黃房子,紅房子,

挪威人,德國人,瑞典人,丹麥人,英國人,

pall mall,prince,混合煙,dunhill,blue    master,

咖 啡,礦泉水,牛奶,茶, 啤酒 ,

鳥,魚,狗, 恐龍,馬,

綠房子,藍房子,白房子,黃房子,紅房子,

挪威人,德國人,瑞典人,丹麥人,英國人,

pall mall,prince,混合煙,dunhill,blue    master,

咖 啡,礦泉水,牛奶,茶, 啤酒 ,

鳥, 恐龍,狗,魚,馬,

綠房子,藍房子,白房子,紅房子,黃房子,

挪威人,德國人,瑞典人,英國人,丹麥人,

pall mall,prince,混合煙,blue    master,dunhill,

咖 啡,礦泉水,牛奶, 啤酒 ,茶,

鳥,魚,狗,馬, 恐龍,

綠房子,藍房子,紅房子,黃房子,白房子,

挪威人,德國人,英國人,丹麥人,瑞典人,

pall mall,prince,混合煙,dunhill,blue    master,

咖 啡,礦泉水,牛奶,茶, 啤酒 ,

鳥,魚,馬, 恐龍,狗,

綠房子,藍房子,紅房子,黃房子,白房子,

挪威人,德國人,英國人,丹麥人,瑞典人,

pall mall,prince,混合煙,dunhill,blue    master,

咖 啡,礦泉水,牛奶,茶, 啤酒 ,

鳥, 恐龍,馬,魚,狗,

C 輕鬆解決世紀迷題

下面的問題相信很多人都聽過 1 有五棟五種顏色的房子 2 每一位房子的主人國籍都不同 3 這五個人每人只喝一種飲料,只抽一種牌子的香菸,只養一種寵物 4 沒有人有相同的寵物,抽相同牌子的香菸,喝相同的飲料 提示 1 英國人住在紅房子裡 2 瑞典人養了一條狗 3 丹麥人喝茶 4 綠房子在白房子左邊 5...

C語言迷題

摘錄至陳浩前輩部落格的c語言迷題,以備學習。1 下面的程式並不見得會輸出 hello std out,你知道為什麼嗎?include include int main return 0 參 stdout和stderr是不是同裝置描述符。stdout是塊裝置,stderr則不是。對於塊裝置,只有當下面...

輕鬆解決Oracle死鎖

各位在使用oracle的過程中,偶爾會遇到死鎖問題,運用下面兩條語句即可輕鬆解決。查詢死鎖情況 select dob.object name table name,vss.sid,vss.serial vss.action action,vss.osuser osuser,vss.process a...