程序员智力面试题(一)
1、史密斯住在第十三號大街,這條大街上的房子的編號是從13號 到1300號。瓊斯想知道史密斯所住的房子的號碼。
瓊斯問道:它小于500嗎? 史密斯作了答復,但他講了謊話。
瓊斯問道:它是個平方數嗎? 史密斯作了答復,但沒有說真話。
瓊斯問道:它是個立方數嗎? 史密斯回答了并講了真話。
瓊斯說道:如果我知道第二位數是否是1,我就能告訴你那所房子的號碼。
史密斯告訴了他第二位數是否是1,瓊斯也講了他所認為的號碼。
但是,瓊斯說錯了。
史密斯住的房子是幾號?
答案:64號。
瓊斯在第四問中問道:“如果我知道第二位數是否是1,我就能告訴你那所房子的號碼”?他為什么這么肯定的說出這樣的話來,一定是第三問的“它是個立方數嗎”史密斯回答一定是"是立方數”!而13-1300之間的立方數只有八個,分別為:?27,64,125,216,343,512,729,1000。同樣第二問,“它是個平方數嗎?”史密斯回答一定是"不是平方數”,?且第一問中“它小于500嗎?” 史密斯作了答復,一定是“大于500” 。所以瓊斯才敢說出第四問的話來!(他不知道,史密斯會對他說假話)?因為大于500,是立方數的只有三個!512,729,1000?而729又是平方數,所以他又問第二位是不是“1”,無論是不是1,他都錯了!由此而得,房子的號碼是:小于500是平方數是立方數?那么,只余下一個數了,他就是64號!
2、A、B兩人分別在兩座島上。B生病了,A有B所需要的藥。C有一艘小船和一個可以上鎖的箱子。C愿意在A和B之間運東西,但東西只能放在箱子里。只要箱子沒被上鎖,C都會偷走箱子里的東西,不管箱子里有什么。如果A和B各自有一把鎖和只能開自己那把鎖的鑰匙,A應該如何把東西安全遞交給B?
答案:
A把藥放進箱子,用自己的鎖把箱子鎖上。B拿到箱子后,再在箱子上加一把自己的鎖。箱子運回A后,A取下自己的鎖。箱子再運到B手中時,B取下自己的鎖,獲得藥物。
3、兩龜賽跑
有兩只烏龜一起賽跑。甲龜到達10米終點線時,乙龜才跑到9米。現在如果讓甲龜的起跑線退后1米,這時兩龜再同時起跑比賽,問甲、乙兩龜是否同時到達終點?
答:甲龜先到,假設速度分別為a,b,在第一個場景中:10/a = 9/b,得到a=10b/9, 現在甲龜后退一米,那么二者所用時間: 11/a, 10/b, 將前面的a帶入得到,99/10b, 10b, 顯然前者所花時間更少。
4、現有米9公斤以及50克和200克的砝碼各一個。問怎樣在天平上只稱量三次而稱出2公斤米?
答:第一次不用砝碼,直接把9公斤米平均放到天平兩端,稱出4.5公斤米;第二次用同樣方法稱出2.25公斤米;第三次用200+50克的砝碼從2.25公斤米中稱出0.25公斤米;剩下的就是2公斤米 OK 問題解決!
5、稱量罐頭
為罐頭工廠工作的送貨員A,給一家食品公司送了10箱菠蘿罐頭。每個罐頭重量是800克,每箱裝20個。正當他送完了貨,要回工廠的時候,接到了從工廠打來的電話,說這10箱中有一箱由于機器出了問題而混進了次品,每個罐頭缺50克的分量,要送貨員把這箱罐頭送回工廠以便更換。但是,怎樣從中找出到底哪一箱是次品呢?最需要的當然是秤,可是手邊又沒有。
正在這時,他忽然發現不遠的路旁有一臺自動稱量體重的機器,也就是投進去1元硬幣就可以稱量一次重量。他的口袋里剛好就有一個1元硬幣。當然也就只能量一次。那么他應該怎么充分利用這只有一次的機會,來找到那一箱不符合規格的產品呢?
答:將罐頭排成一排,從左向右(反之亦然)取罐頭,第一箱取一個,第二箱取兩個,以此類推,第九箱取九個,第十箱取十個。全部一起過秤,若少50克,則第一箱為不合格,若少100克,則第二箱為不合格,以此類推,少個50克,即為第幾箱不合格。
6.快馬加鞭
墨西哥農村現在仍然可以看到人們用馬和驢運載貨物。一位商人把四匹馬從甲村拉到乙村,而從甲村到乙村,A馬要花一小時,B馬要花兩小時,C馬要花四小時,D馬要花五小時。
這位商人一次只能拉兩匹馬,回來時他還要騎一匹馬,其中以走得慢的那匹馬作為從甲村拉到乙村所需的時間。聽說有人花了12小時就把四匹馬全部從甲村拉到乙村,請問:他是如何辦到的?
答案:
甲到乙 AB 2
乙到甲 A 1
甲到乙 CD 5
乙到甲 B 2
甲到乙 AB 2
7.擊鼠標
擊鼠標比賽現在開始!參賽者有拉爾夫、威利和保羅。
拉爾夫10秒鐘能擊10下鼠標;威利20秒鐘能擊20下鼠標;保羅5秒鐘能擊5下鼠標。以上各人所用的時間是這樣計算的;從第一擊開始,到最后一擊結束。
他們是否打平手?如果不是,誰最先擊完40下鼠標?
答案:
n秒鐘擊n下鼠標其實是擊第一下鼠標時才開始計時,實際上擊n-1下需要n秒鐘,那么若擊40下鼠標,拉爾夫需要(40-1)/(9/10)=39/0.9秒,威利需要(40-1)/(19/20)=39/0.95秒,保羅需要(40-1)/(4/5)=39/0.8秒,
因此威利先擊完。
8、小明今天提前放學,步行回家10分鐘的時候遇見開車接他的爸爸,于是上車一起回家,但回家時間仍比以往晚了一分鐘,原因是今天爸爸下班晚了七分鐘。請問,小明今天提前幾分鐘放學?
答案:小明的爸爸晚下班7分鐘,然后去接他,卻只遲1分鐘回家。說明 由于在去接小明的路上 少走了小明步行的 這10分鐘的路程的2倍(往返), 而少用了6分鐘。所以兩人相遇地點 距離學校的路程,換算車行時間是3分鐘。(往返6共分鐘)。也就是說這段路程車子到學校還要3分鐘。而爸爸晚下班的7分鐘 - 這3分鐘 = 車子遇見小明時比平時晚的時間 : 4分鐘。假設提前放學n分鐘, n+4=10所以小明提前放學6分鐘
9、一個冬日的黃昏,我正漫步街頭,突然聽到一聲槍響,看見不遠處一個老人跌向房門,慢慢地倒了下去。我和街上僅有的兩個人,先后跑了過去,發現老人背部中彈,已經死去。我看見兩個人都戴著手套,便問他們剛才在做什么。
第一位說:“我看見老人剛要鎖門,槍一響,他應聲而倒,我便立即跑來。”第二位說:“我聽到槍聲不知發生了什么事情,看到你倆到往這跑,我也就跟了過來。”
鑰匙還插在房門的鎖眼里,我打開門,走進房間,打電話報警。
警署人員來了以后,我指著一個人說:“把他拘留詢問。”
拘留誰?為什么?
答案:拘留第一個說話的人。他知道老人是鎖房門,而不是開房門,說明他一直在窺視老人行動。
總結
以上是生活随笔為你收集整理的程序员智力面试题(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Libevent】Libevent学习
- 下一篇: 数据结构与算法之美01-开篇词