碼農面試智力題及答案

aFakeProgramer發表於2018-04-17

1、 假設有一個池塘,裡面有無窮多的水。現有2個空水壺,容積分別為5升和6升。問題是如何只用這2個水壺從池塘裡取得3升的水。


2、 有兩根不均勻分佈的香,香燒完的時間是一個小時,你能用什麼方法來確定一段15分鐘的時間?


3、 邏輯推理俱樂部大廳門口貼著一張佈告:"歡迎你參加推理俱樂部!只要你願意,並且通過推理取得一張申請表,就可以獲得會員資格了!"


4、 走進大廳,看見桌子上擺著兩個匣子:一個圓匣子,一個方匣子。圓匣子上寫著一句話:"申請表不在此匣中",方匣子上寫著一句話:"這兩句話中只有一句是真話"。 


5、 如果你想獲得會員的資格,那麼你是從圓匣子中,還是從方匣子中去取申請表呢?


6、 一間囚房裡關押著兩個犯人。每天監獄都會為這間囚房提供一罐湯,讓這兩個犯人自己來分。起初,這兩個人經常會發生爭執,因為他們總是有人認為對方的湯比自己的多。後來他們找到了一個兩全其美的辦法:一個人分湯,讓另一個人先選。於是爭端就這麼解決了。可是,現在這間囚房裡又加進來一個新犯人,現在是三個人來分湯。必須尋找一個新的方法來維持他們之間的和平。該怎麼辦呢?


7、 1元錢一瓶汽水,喝完後兩個空瓶換一瓶汽水,問:你有20元錢,最多可以喝到幾瓶汽水?


8、 有九棵樹,要種三行,每行要種四棵,應該怎麼種,畫出示意圖即可


9、 1,11,21,1211,111221,下一個數是什麼?


10、 小明原計劃坐飛機準時18:00點到機場,而他爸開車準時18:00點到機場接他,結果小明的飛機早到一個小時(17:00點)就到機場了,於是小明徒步回家,路上遇到了爸爸,結果他們比原計劃提前20分鐘到家。請問:小明徒步走了多長時間?




12、 分別說明byte,short,int,float,double,long,char,string,boolean,物件引用,新建物件耗費的記憶體空間


13、 String和StringBuffer,StringBuilder的區別和各自的使用範圍


14、 寫一個函式將String="ABCDEF"倒轉過來(String="FEDCBA")


15、 將IP地址按A*256^3+B*256^2+C*256+D規則編碼為long型,寫一個函式,將long型轉化為A.B.C.D的字串型別


16、 重寫和過載有什麼區別


17、 用程式碼舉例說明多型


















參考答案:


1. 假設有一個池塘,裡面有無窮多的水。現有2個空水壺,容積分別為5升和6升。問題是如何只用這2個水壺從池塘裡取得3升的水。

由滿6向空5倒,剩1升,把這1升倒5裡,然後6剩滿,倒5裡面,由於5裡面有1升水,因此6只能向5倒4升水,然後將6剩餘的2升,倒入空的5裡面,再灌滿6向5裡倒3升,剩餘3升。

2. 有兩根不均勻分佈的香,香燒完的時間是一個小時,你能用什麼方法來確定一段15分鐘的時間?


一隻兩頭點燃,另一隻一頭點燃,當第一隻燒完後,第二隻丙再頭點燃,就可以得到15

3. 邏輯推理俱樂部大廳門口貼著一張佈告:"歡迎你參加推理俱樂部!只要你願意,並且通過推理取得一張申請表,就可以獲得會員資格了!"走進大廳,看見桌子上擺著兩個匣子:一個圓匣子,一個方匣子。圓匣子上寫著一句話:"申請表不在此匣中",方匣子上寫著一句話:"這兩句話中只有一句是真話"。 如果你想獲得會員的資格,那麼你是從圓匣子中,還是從方匣子中去取申請表呢?


根據第1句話,如果的確不在圓匣子裡面, 那麼這句話為真。
那麼第2句話就成了悖論(第1句已經為真,只有1句為真的話,這句應該為假,那麼得出2句全為真或者全為假,事實上都顯得不自然,悖論)

所以,第1句話為假,申請表的確在此圓匣中


6. 一間囚房裡關押著兩個犯人。每天監獄都會為這間囚房提供一罐湯,讓這兩個犯人自己來分。起初,這兩個人經常會發生爭執,因為他們總是有人認為對方的湯比自己的多。後來他們找到了一個兩全其美的辦法:一個人分湯,讓另一個人先選。於是爭端就這麼解決了。可是,現在這間囚房裡又加進來一個新犯人,現在是三個人來分湯。必須尋找一個新的方法來維持他們之間的和平。該怎麼辦呢?


是讓甲分湯,分好後由乙和丙按任意順序給自己挑湯,剩餘一碗留給甲。這樣乙和丙兩人的總和肯定是他們兩人可拿到的最大。然後將他們兩人的湯混合之後再按兩人的方法再次分湯。

7. 1元錢一瓶汽水,喝完後兩個空瓶換一瓶汽水,問:你有20元錢,最多可以喝到幾瓶汽水?


40瓶,20+10+5+2+1+1=39, 這時還有一個空瓶子,先向店主借一個空瓶,換來一瓶汽水喝完後把空瓶還給店主。

8. 有九棵樹,要種三行,每行要種四棵,應該怎麼種,畫出示意圖即可


9. 1,11,21,1211,111221,下一個數是什麼?


下行是對上一行的解釋 所以新的應該是3個1 2個2 1個1 :312211

10. 小明原計劃坐飛機準時18:00點到機場,而他爸開車準時18:00點到機場接他,結果小明的飛機早到一個小時(17:00點)就到機場了,於是小明徒步回家,路上遇到了爸爸,結果他們比原計劃提前20分鐘到家。請問:小明徒步走了多長時間?


假設機場為A點,他家為B點,小明在路上與車子相遇為C點 。
由於比計劃提前20分鐘,則說明車子少開了20分鐘,AC之間的距離為車行的10分鐘(20 / 2 ,考慮往返)
那麼車子到C點的時間為17:50,也就是說小明走了50分鐘

相關文章