1. 程式人生 > >經典面試智力題200+題和解答

經典面試智力題200+題和解答

招聘時期到了,總少不了需要準備智力題。考來考去大多是各種舊題,本來是考智力的事情,現在幾乎已經變成了題海戰術的考試,所以我們也不能在這一塊落後。學習各種奇巧淫技,擴充套件一下思路,同時免得筆試面試吃虧。

蒐集了大量智力題,有些還挺有意思,順便活躍大腦思維,有些益處。

網上題目很多,眼花繚亂,大量重複的轉載。現在集中搜集貼在這裡,免得後來人自己到處查浪費時間,有問題或者解法可以在下面跟帖給出。歡迎討論,歡迎增加新的題目,謝謝。

如有其它問題反饋,Kayven微博留言E-mail)。題目太多,沒有加工整理,不過基本不影響閱讀。

一、微軟58題

A.邏輯推理

       1、你讓工人為你工作7天,給工人的回報是一根金條。金條平分成相連的7段 
,你必須在每天結束時給他們一段金條,如果只許你兩次把金條弄斷,你如何給你 
的工人付費?
 
  2、請把一盒蛋糕切成8份,分給8個人,但蛋糕盒裡還必須留有一份。 

  3、小明一家過一座橋,過橋時是黑夜,所以必須有燈。現在小明過橋要1秒, 
小明的弟弟要3秒,小明的爸爸要6秒,小明的媽媽要8秒,小明的爺爺要12秒。每 
次此橋最多可過兩人,而過橋的速度依過橋最慢者而定,而且燈在點燃後30秒就會 
熄滅。問:小明一家如何過橋? 

  4、一群人開舞會,每人頭上都戴著一頂帽子。帽子只有黑白兩種,黑的至少 
有一頂。每個人都能看到其他人帽子的顏色,卻看不到自己的。主持人先讓大家看 
看別人頭上戴的是什麼帽子,然後關燈,如果有人認為自己戴的是黑帽子,就打自 
己一個耳光。第一次關燈,沒有聲音。於是再開燈,大家再看一遍,關燈時仍然鴉 
雀無聲。一直到第三次關燈,才有劈劈啪啪打耳光的聲音響起。問有多少人戴著黑 
帽子? 

  5、請估算一下CN TOWER電視塔的質量。 

  6、一樓到十樓的每層電梯門口都放著一顆鑽石,鑽石大小不一。你乘坐電梯 
從一樓到十樓,每層樓電梯門都會開啟一次,只能拿一次鑽石,問怎樣才能拿到最 
大的一顆? 

  7、U2合唱團在17分鐘內得趕到演唱會場,途中必需跨過一座橋,四個人從橋 
的同一端出發,你得幫助他們到達另一端,天色很暗,而他們只有一隻手電筒。一 
次同時最多可以有兩人一起過橋,而過橋的時候必須持有手電筒,所以就得有人把 
手電筒帶來帶去,來回橋兩端。手電筒是不能用丟的方式來傳遞的。四個人的步行 
速度各不同,若兩人同行則以較慢者的速度為準。Bono需花1分鐘過橋,Edge需花 
2分鐘過橋,Adam需花5分鐘過橋,Larry需花10分鐘過橋。他們要如何在17分鐘內 
過橋呢? 

  8、燒一根不均勻的繩要用一個小時,如何用它來判斷半個小時 ?

  9、為什麼下水道的蓋子是圓的? 

  10、美國有多少輛加油站(汽車)? 

  11、有7克、2克砝碼各一個,天平一隻,如何只用這些物品三次將140克的鹽 
分成50、90克各一份? 

  12、有一輛火車以每小時15公里的速度離開洛杉磯直奔紐約,另一輛火車以第 
小時20公里的速度從紐約開往洛杉磯。如果有一隻鳥,以外30公里每小時的速度和 
兩輛火車現時啟動,從洛杉磯出發,碰到另輛車後返回,依次在兩輛火車來回的飛 
行,直道兩面輛火車相遇,請問,這隻小鳥飛行了多長距離? 

  13、你有兩個罐子,50個紅色彈球,50個藍色彈球,隨機選出一個罐子,隨機 
選取出一個彈球放入罐子,怎麼給紅色彈球最大的選中機會?在你的計劃中,得到 
紅球的準確機率是多少? 

  14、想象你在鏡子前,請問,為什麼鏡子中的影像可以顛倒左右,卻不能顛倒 
上下? 

  15、你有四人裝藥丸的罐子,每個藥丸都有一定的重量,被汙染的藥丸是沒被 
汙染的重量+1.只稱量一次,如何判斷哪個罐子的藥被汙染了? 

  16、如果你有無窮多的水,一個3夸脫的和一個5夸脫的提桶,你如何準確稱出 
4夸脫的水? 

  17、你有一桶果凍,其中有黃色,綠色,紅色三種,,閉上眼睛選出同樣顏色 
的兩個,抓取同種顏色的兩個。抓取多少個就可以確定你肯定有兩個同一顏色的果 
凍? 

  18、將汽車鑰匙插入車門,向哪個方向旋轉就可以開啟車鎖? 

  19、如果要你能去掉50個州的任何一個,那你去掉哪一個,為什麼?
 
  20、對一批編號為1~100 全部開關朝上開的燈進行以下操作 
凡是1 的倍數反方向撥一次開關2 的倍數反方向又撥一次開關3 的倍數反方向 
又撥一次開關。 
  問最後為關熄狀態的燈的編號。
 
  21、假設一張圓盤像唱機上的唱盤那樣轉動。這張盤一半是黑色,一半是白色 
。假設你有數量不限的一些顏色感測器。要想確定圓盤轉動的方向,你需要在它周 
圍擺多少個顏色感測器?它們應該被擺放在什麼位置?
 
  22、假設時鐘到了12點。注意時針和分針重疊在一起。在一天之中,時針和分 
針共重疊多少次?你知道它們重疊時的具體時間嗎? 

  23、中間只隔一個數字的兩個奇數被稱為奇數對,比如17和19。證明奇數對之 
間的數字總能被6整除(假設這兩個奇數都大於6)。現在證明沒有由三個奇陣列成 
的奇數對。 

  24、一個屋子有一個門(門是關閉的)和3盞電燈。屋外有3個開關,分別與這 
3盞燈相連。你可以隨意操縱這些開關,可一旦你將門開啟,就不能變換開關了。 
確定每個開關具體管哪盞燈。 

  25、假設你有8個球,其中一個略微重一些,但是找出這個球的惟一方法是將 
兩個球放在天平上對比。最少要稱多少次才能找出這個較重的球? 

  26、下面玩一個拆字遊戲,所有字母的順序都被打亂。你要判斷這個字是什麼 
。假設這個被拆開的字由5個字母組成: 
    1.共有多少種可能的組合方式? 
    2.如果我們知道是哪5個字母,那會怎麼樣? 
    3.找出一種解決這個問題的方法。 

  27、有4個女人要過一座橋。她們都站在橋的某一邊,要讓她們在17分鐘內全 
部通過這座橋。這時是晚上。她們只有一個手電筒。最多隻能讓兩個人同時過橋。 
不管是誰過橋,不管是一個人還是兩個人,必須要帶著手電筒。手電筒必須要傳來 
傳去,不能扔過去。每個女人過橋的速度不同,兩個人的速度必須以較慢的那個人 
的速度過橋。 
  第一個女人:過橋需要1分鐘; 
  第二個女人:過橋需要2分鐘; 
  第三個女人:過橋需要5分鐘; 
  第四個女人:過橋需要10分鐘。 
  比如,如果第一個女人與第4個女人首先過橋,等她們過去時,已經過去了10 
分鐘。如果讓第4個女人將手電筒送回去,那麼等她到達橋的另一端時,總共用去 
了20分鐘,行動也就失敗了。怎樣讓這4個女人在17分鐘內過橋?還有別的什麼方 
法? 

  28、如果你有兩個桶,一個裝的是紅色的顏料,另一個裝的是藍色的顏料。你 
從藍色顏料桶裡舀一杯,倒入紅色顏料桶,再從紅色顏料桶裡舀一杯倒入藍顏料桶 
。兩個桶中紅藍顏料的比例哪個更高?通過算術的方式來證明這一點。 



B:瘋狂計算 

  29、已知兩個1~30之間的數字,甲知道兩數之和,乙知道兩數之積。 
  甲問乙:"你知道是哪兩個數嗎?"乙說:"不知道"; 
  乙問甲:"你知道是哪兩個數嗎?"甲說:"也不知道"; 
  於是,乙說:"那我知道了"; 
  隨後甲也說:"那我也知道了"; 
  這兩個數是什麼? 

  30、4,4,10,10,加減乘除,怎麼出24點? 

  31、1000!有幾位數,為什麼? 

  32、F(n)=1 n>8 n<12 
  F(n)=2 n<2 
  F(n)=3 n=6 
  F(n)=4 n=other 
  使用+ - * /和sign(n)函式組合出F(n)函式 
  sign(n)=0 n=0 
  sign(n)=-1 n<0 
  sign(n)=1 n>0 

  33、編一個程式求質數的和例如F(7)=1+3+5+7+11+13+17=58
 
  34、。。。 
  請僅用一支筆畫四根直線將上圖9 各點全部連線 

  35、三層四層二叉樹有多少種 

  36、1--100000 數列按一定順序排列,有一個數字排錯,如何糾錯?寫出最好 
方法。兩個數字呢? 

  37、連結表和陣列之間的區別是什麼?
 
  38、做一個連結表,你為什麼要選擇這樣的方法? 

  39、選擇一種演算法來整理出一個連結表。你為什麼要選擇這種方法?現在用 
O(n)時間來做。 

  40、說說各種股票分類演算法的優點和缺點。
 
  41、用一種演算法來顛倒一個連結表的順序。現在在不用遞迴式的情況下做一遍 
。 
  42、用一種演算法在一個迴圈的連結表裡插入一個節點,但不得穿越連結表。 

  43、用一種演算法整理一個數組。你為什麼選擇這種方法? 

  44、用一種演算法使通用字串相匹配。 

  45、顛倒一個字串,優化速度,優化空間。 

  46、顛倒一個句子中的詞的順序,比如將"我叫克麗絲"轉換為"克麗絲叫我", 
實現速度最快,移動最少。 

  47、找到一個子字串,優化速度,優化空間。 

  48、比較兩個字串,用O(n)時間和恆量空間。
 
  49、假設你有一個用1001個整陣列成的陣列,這些整數是任意排列的,但是你 
知道所有的整數都在1到1000(包括1000)之間。此外,除一個數字出現兩次外, 
其他所有數字只出現一次。假設你只能對這個陣列做一次處理,用一種演算法找出重 
復的那個數字。如果你在運算中使用了輔助的儲存方式,那麼你能找到不用這種方 
式的演算法嗎? 

  50、不用乘法或加法增加8倍。現在用同樣的方法增加7倍。 

C:創造性應用
 

  51、營業員小姐由於工作失誤,將2萬元的膝上型電腦以1.2萬元錯賣給李先生 
,王小姐的經理怎麼寫信給李先生試圖將錢要回來? 

  52、如何將計算機技術應用於一幢100層高的辦公大樓的電梯系統上?你怎樣 
優化這種應用?工作日時的交通、樓層或時間等因素會對此產生怎樣的影響? 

  53、你如何對一種可以隨時存在檔案中或從因特網上拷貝下來的作業系統實施 
保護措施,防止被非法複製? 

  54、你如何重新設計自動取款機? 

  55、假設我們想通過電腦來操作一臺微波爐,你會開發什麼樣的軟體來完成這 
個任務? 

  56、你如何為一輛汽車設計一臺咖啡機? 

  56、如果你想給微軟的Word系統增加點內容,你會增加什麼樣的內容? 

  57、你會給只有一隻手的使用者設計什麼樣的鍵盤? 

  58、你會給失聰的人設計什麼樣的鬧鐘?




參考答案:

  1、day1 給1 段, 
  day2 讓工人把1 段歸還給2 段, 
  day3 給1 段, 
  day4 歸還1 2 段,給4 段。 
  day5 依次類推…… 

  2、面對這樣的怪題,有些應聘者絞盡腦汁也無法分成;而有些應聘者卻感到 
此題實際很簡單,把切成的8份蛋糕先拿出7份分給7人,剩下的1份連蛋糕盒一起分 
給第8個人。 

  4、假如只有一個人戴黑帽子,那他看到所有人都戴白帽,在第一次關燈時就 
應自打耳光,所以應該不止一個人戴黑帽子;如果有兩頂黑帽子,第一次兩人都只 
看到對方頭上的黑帽子,不敢確定自己的顏色,但到第二次關燈,這兩人應該明白 
,如果自己戴著白帽,那對方早在上一次就應打耳光了,因此自己戴的也是黑帽子 
,於是也會有耳光聲響起;可事實是第三次才響起了耳光聲,說明全場不止兩頂黑 
帽,依此類推,應該是關了幾次燈,有幾頂黑帽。
 
  5、比如你怎樣快速估算支架和柱子的高度、球的半徑,算出各部分的體積等 
等。招聘官的說法:"就CNTOWER這道題來說,它和一般的謎語或智力題還是有區別 
的。我們稱這類題為’快速估算題’,主要考的是快速估算的能力,這是開發軟體 
必備的能力之一。當然,題目只是手段,不是目的,最終得到一個結果固然是需要 
的,但更重要的是對考生得出這個結果的過程也就是方法的考察。"Mr Miller為記 
者舉例說明了一種比較合理的答法,他首先在紙上畫出了CN TOWER的草圖,然後快 
速估算支架和各柱的高度,以及球的半徑,算出各部分體積,然後和各部分密度運 
算,最後相加得出一個結果。 
  這一類的題目其實很多,如:"估算一下密西西比河裡的水的質量。""如果你 
是田納西州州長,請估算一下治理好康柏蘭河的汙染需要多長時間。" 
  "估算一下一個行進在小雨中的人5分鐘內身上淋到的雨的質量。" 
  Mr Miller接著解釋道:"像這樣的題目,包括一些推理題,考的都是人的 
ProblemSolving(解決問題的能力),不是哪道題你記住了答案就可以了的。" 
  對於公司招聘的宗旨,Mr Miller強調了四點,這些是有創造性的公司普遍注 
重的員工素質,是想要到知名企業實現自己的事業夢想的人都要具備的素質和能力 
。 
  要求一:RawSmart(純粹智慧),與知識無關。 
  要求二:Long-termPotential(長遠學習能力)。 
  要求三:TechnicSkills(技能)。 
  要求四:Professionalism(職業態度)。 

  6、她的回答是:選擇前五層樓都不拿,觀察各層鑽石的大小,做到心中有數 
。後五層樓再選擇,選擇大小接近前五層樓出現過最大鑽石大小的鑽石。她至今也 
不知道這道題的準確答案,"也許就沒有準確答案,就是考一下你的思路,"她如是 
說。 

  7、分析:有個康奈爾的學生寫文章說他當時在微軟面試時就是碰到了這道題 
,最短只能做出在19分鐘內過橋。
 
  8、兩邊一起燒。 

  9、答案之一:從麻省理工大學一位計算機系教授那裡聽來的答案,首先在同 
等用材的情況下他的面積最大。第二因為如果是方的、長方的或橢圓的,那無聊之 
徒拎起來它就可以直接扔進地下道啦!但圓形的蓋子嘛,就可以避免這種情況了 


  10、這個乍看讓人有些摸不著頭腦的問題時,你可能要從問這個國家有多少小 
汽車入手。面試者也許會告訴你這個數字,但也有可能說:"我不知道,你來告訴 
我。"那麼,你對自己說,美國的人口是2.75億。你可以猜測,如果平均每個家庭 
(包括單身)的規模是2.5人,你的計算機會告訴你,共有1.1億個家庭。你回憶起 
在什麼地方聽說過,平均每個家庭擁有1.8輛小汽車,那麼美國大約會有1.98億輛 
小汽車。接著,只要你算出替1.98億輛小汽車服務需要多少加油站,你就把問題解 
決了。重要的不是加油站的數字,而是你得出這個數字的方法。
 
  12、答案很容易計算的: 
  假設洛杉磯到紐約的距離為s 
  那小鳥飛行的距離就是(s/(15+20))*30。 

  13、無答案,看你有沒有魄力堅持自己的意見。 

  14、因為人的兩眼在水平方向上對稱。 

  15、從第一盒中取出一顆,第二盒中取出2 顆,第三盒中取出三顆。 
  依次類推,稱其總量。
 
  16、比較複雜: 
  A、先用3 夸脫的桶裝滿,倒入5 夸脫。以下簡稱3->5) 
  在5 夸脫桶中做好標記b1,簡稱b1)。 
  B、用3 繼續裝水倒滿5 空3 將5 中水倒入3 直到b1 在3 中做標記b2 
  C、用5 繼續裝水倒滿3 空5 將3 中水倒入5 直到b2 
  D、空3 將5 中水倒入3 標記為b3 
  E、裝滿5 空3 將5 中水倒入3 直到3 中水到b3 
  結束了,現在5 中水為標準的4 夸脫水。 

  20、素數是關,其餘是開。 

  29、允許兩數重複的情況下 
  答案為x=1,y=4;甲知道和A=x+y=5,乙知道積B=x*y=4 
  不允許兩數重複的情況下有兩種答案 
  答案1:為x=1,y=6;甲知道和A=x+y=7,乙知道積B=x*y=6 
  答案2:為x=1,y=8;甲知道和A=x+y=9,乙知道積B=x*y=8 
  解: 
  設這兩個數為x,y. 
  甲知道兩數之和 A=x+y; 
  乙知道兩數之積 B=x*y; 
  該題分兩種情況 : 
  允許重複, 有(1 <= x <= y <= 30); 
  不允許重複,有(1 <= x < y <= 30); 
  當不允許重複,即(1 <= x < y <= 30); 
  1)由題設條件:乙不知道答案 
  <=> B=x*y 解不唯一 
  => B=x*y 為非質數 
  又∵ x ≠ y 
  ∴ B ≠ k*k (其中k∈N) 
  結論(推論1): 
  B=x*y 非質數且 B ≠ k*k (其中k∈N) 
  即:B ∈(6,8,10,12,14,15,18,20...) 
  證明過程略。 
  2)由題設條件:甲不知道答案 
  <=> A=x+y 解不唯一 
  => A >= 5; 
  分兩種情況: 
  A=5,A=6時x,y有雙解 
  A>=7 時x,y有三重及三重以上解 
  假設 A=x+y=5 
  則有雙解 
  x1=1,y1=4; 
  x2=2,y2=3 
  代入公式B=x*y: 
  B1=x1*y1=1*4=4;(不滿足推論1,捨去) 
  B2=x2*y2=2*3=6; 
  得到唯一解x=2,y=3即甲知道答案。 
  與題設條件:"甲不知道答案"相矛盾 , 
  故假設不成立,A=x+y≠5 
  假設 A=x+y=6 
  則有雙解。 
  x1=1,y1=5; 
  x2=2,y2=4 
  代入公式B=x*y: 
  B1=x1*y1=1*5=5;(不滿足推論1,捨去) 
  B2=x2*y2=2*4=8; 
  得到唯一解x=2,y=4 
  即甲知道答案 
  與題設條件:"甲不知道答案"相矛盾 
  故假設不成立,A=x+y≠6 
  當A>=7時 
  ∵ x,y的解至少存在兩種滿足推論1的解 
  B1=x1*y1=2*(A-2) 
  B2=x2*y2=3*(A-3) 
  ∴ 符合條件 
  結論(推論2):A >= 7 
  3)由題設條件:乙說"那我知道了" 
  =>乙通過已知條件B=x*y及推論(1)(2)可以得出唯一解 
  即: 
  A=x+y, A >= 7 
  B=x*y, B ∈(6,8,10,12,14,15,16,18,20...) 
  1 <= x < y <= 30 
  x,y存在唯一解 
  當 B=6 時:有兩組解 
  x1=1,y1=6 
  x2=2,y2=3 (∵ x2+y2=2+3=5 < 7∴不合題意,捨去) 
  得到唯一解 x=1,y=6 
  當 B=8 時:有兩組解 
  x1=1,y1=8 
  x2=2,y2=4 (∵ x2+y2=2+4=6 < 7∴不合題意,捨去) 
  得到唯一解 x=1,y=8 
  當 B>8 時:容易證明均為多重解 
  結論: 
  當B=6時有唯一解 x=1,y=6當B=8時有唯一解 x=1,y=8 
  4)由題設條件:甲說"那我也知道了" 
  => 甲通過已知條件A=x+y及推論(3)可以得出唯一解 
  綜上所述,原題所求有兩組解: 
  x1=1,y1=6 
  x2=1,y2=8 
  當x<=y時,有(1 <= x <= y <= 30); 
  同理可得唯一解 x=1,y=4 

  31、 
  解:1000 
  Lg(1000!)=sum(Lg(n)) 
  n=1 
  用3 段折線代替曲線可以得到 
  10(0+1)/2+90(1+2)/2+900(2+3)/2=2390 
  作為近似結果,好象1500~3000 都算對 

  32、F(n)=1 n>8 n<12 
  F(n)=2 n<2 
  F(n)=3 n=6 
  F(n)=4 n=other 
  使用+ - * /和sign(n)函式組合出F(n)函式 
  sign(n)=0 n=0 
  sign(n)=-1 n<0 
  :sign(n)=1 n>0 
  解:只要注意[sign(n-m)*sign(m-n)+1]在n=m 處取1 其他點取0 就可以了 

  34、米字形的畫就行了 

  59、答案是和家人告別. 

-------------------------------------------------------------------------

二、18題

1、考慮一個雙人遊戲。遊戲在一個圓桌上進行。每個遊戲者都有足夠多的硬幣。他們需要在桌子上輪流放置硬幣,每次必需且只能放置一枚硬幣,要求硬幣完全置於桌面內(不能有一部分懸在桌子外面),並且不能與原來放過的硬幣重疊。誰沒有地方放置新的硬幣,誰就輸了。遊戲的先行者還是後行者有必勝策略?這種策略是什麼?
    答案:先行者在桌子中心放置一枚硬幣,以後的硬幣總是放在與後行者剛才放的地方相對稱的位置。這樣,只要後行者能放,先行者一定也有地方放。先行者必勝。

    2、 用線性時間和常數附加空間將一篇文章的單詞(不是字元)倒序。
    答案:先將整篇文章的所有字元逆序(從兩頭起不斷交換位置相對稱的字元);然後用同樣的辦法將每個單詞內部的字元逆序。這樣,整篇文章的單詞順序顛倒了,但單詞本身又被轉回來了。

    3、 用線性時間和常數附加空間將一個長度為n的字串向左迴圈移動m位(例如,"abcdefg"移動3位就變成了"defgabc")。
    答案:把字串切成長為m和n-m的兩半。將這兩個部分分別逆序,再對整個字串逆序。

    4、一個矩形蛋糕,蛋糕內部有一塊矩形的空洞。只用一刀,如何將蛋糕切成大小相等的兩塊?
    答案:注意到平分矩形面積的線都經過矩形的中心。過大矩形和空心矩形各自的中心畫一條線,這條線顯然把兩個矩形都分成了一半,它們的差當然也是相等的。

    5、 一塊矩形的巧克力,初始時由N x M個小塊組成。每一次你只能把一塊巧克力掰成兩個小矩形。最少需要幾次才能把它們掰成N x M塊1x1的小巧克力?
    答案:N x M - 1次顯然足夠了。這個數目也是必需的,因為每掰一次後當前巧克力的塊數只能增加一,把巧克力分成N x M塊當然需要至少掰N x M - 1次。

    6、如何快速找出一個32位整數的二進位制表達裡有多少個"1"?用關於"1"的個數的線性時間?
    答案1(關於數字位數線性):for(n=0; b; b >>= 1) if (b & 1) n++;
    答案2(關於"1"的個數線性):for(n=0; b; n++) b &= b-1;

    7、 一個大小為N的陣列,所有數都是不超過N-1的正整數。用O(N)的時間找出重複的那個數(假設只有一個)。一個大小為N的陣列,所有數都是不超過N+1的正整數。用O(N)的時間找出沒有出現過的那個數(假設只有一個)。
   答案:計算陣列中的所有數的和,再計算出從1到N-1的所有數的和,兩者之差即為重複的那個數。計算陣列中的所有數的和,再計算出從1到N+1的所有數的和,兩者之差即為缺少的那個數。

    8、 給出一行C語言表示式,判斷給定的整數是否是一個2的冪。
    答案:(b & (b-1)) == 0

    9、地球上有多少個點,使得從該點出發向南走一英里,向東走一英里,再向北走一英里之後恰好回到了起點?
    答案:“北極點”是一個傳統的答案,其實這個問題還有其它的答案。事實上,滿足要求的點有無窮多個。所有距離南極點1 + 1/(2π)英里的地方都是滿足要求的,向南走一英里後到達距離南極點1/(2π)的地方,向東走一英里後正好繞行緯度圈一週,再向北走原路返回到起點。事實上,這仍然不是滿足要求的全部點。距離南極點1 + 1/(2kπ)的地方都是可以的,其中k可以是任意一個正整數。

      10、A、B兩人分別在兩座島上。B生病了,A有B所需要的藥。C有一艘小船和一個可以上鎖的箱子。C願意在A和B之間運東西,但東西只能放在箱子裡。只要箱子沒被上鎖,C都會偷走箱子裡的東西,不管箱子裡有什麼。如果A和B各自有一把鎖和只能開自己那把鎖的鑰匙,A應該如何把東西安全遞交給B?
    答案:A把藥放進箱子,用自己的鎖把箱子鎖上。B拿到箱子後,再在箱子上加一把自己的鎖。箱子運回A後,A取下自己的鎖。箱子再運到B手中時,B取下自己的鎖,獲得藥物。

    11、 一對夫婦邀請N-1對夫婦參加聚會(因此聚會上總共有2N人)。每個人都和所有自己不認識的人握了一次手。然後,男主人問其餘所有人(共2N-1個人)各自都握了幾次手,得到的答案全部都不一樣。假設每個人都認識自己的配偶,那麼女主人握了幾次手?
    答案:握手次數只可能是從0到2N-2這2N-1個數。除去男主人外,一共有2N-1個人,因此每個數恰好出現了一次。其中有一個人(0)沒有握手,有一個人(2N-2)和所有其它的夫婦都握了手。這兩個人肯定是一對夫妻,否則後者將和前者握手(從而前者的握手次數不再是0)。除去這對夫妻外,有一個人(1)只與(2N-2)握過手,有一個人(2N-3)和除了(0)以外的其它夫婦都握了手。這兩個人肯定是一對夫妻,否則後者將和前者握手(從而前者的握手次數不再是1)。以此類推,直到握過N-2次手的人和握過N次手的人配成一對。此時,除了男主人及其配偶以外,其餘所有人都已經配對。根據排除法,最後剩下來的那個握手次數為N-1的人就是女主人了。

    12、兩個機器人,初始時位於數軸上的不同位置。給這兩個機器人輸入一段相同的程式,使得這兩個機器人保證可以相遇。程式只能包含“左移n個單位”、“右移n個單位”,條件判斷語句If,迴圈語句while,以及兩個返回Boolean值的函式“在自己的起點處”和“在對方的起點處”。你不能使用其它的變數和計數器。
    答案:兩個機器人同時開始以單位速度右移,直到一個機器人走到另外一個機器人的起點處。然後,該機器人以雙倍速度追趕對方。程式如下。

while(!at_other_robots_start) {
  move_right 1
}
while(true) {
  move_right 2
}

    13、 如果叫你從下面兩種遊戲中選擇一種,你選擇哪一種?為什麼?
      a. 寫下一句話。如果這句話為真,你將獲得10美元;如果這句話為假,你獲得的金錢將少於10美元或多於10美元(但不能恰好為10美元)。
      b. 寫下一句話。不管這句話的真假,你都會得到多於10美元的錢。
    答案:選擇第一種遊戲,並寫下“我既不會得到10美元,也不會得到10000000美元”。


      14、你在一幢100層大樓下,有21根電線線頭標有數字1..21。這些電線一直延伸到大樓樓頂,樓頂的線頭處標有字母A..U。你不知道下面的數字和上面的字母的對應關係。你有一個電池,一個燈泡,和許多很短的電線。如何只上下樓一次就能確定電線線頭的對應關係?
       答案:在下面把2,3連在一起,把4到6全連在一起,把7到10全連在一起,等等,這樣你就把電線分成了6個“等價類”,大小分別為1, 2, 3, 4, 5, 6。然後到樓頂,測出哪根線和其它所有電線都不相連,哪些線和另外一根相連,哪些線和另外兩根相連,等等,從而確定出字母A..U各屬於哪個等價類。現在,把每個等價類中的第一個字母連在一起,形成一個大小為6的新等價類;再把後5個等價類中的第二個字母連在一起,形成一個大小為5的新等價類;以此類推。回到樓下,把新的等價類區別出來。這樣,你就知道了每個數字對應了哪一個原等價類的第幾個字母,從而解決問題。

    15、某種藥方要求非常嚴格,你每天需要同時服用A、B兩種藥片各一顆,不能多也不能少。這種藥非常貴,你不希望有任何一點的浪費。一天,你開啟裝藥片A的藥瓶,倒出一粒藥片放在手心;然後開啟另一個藥瓶,但不小心倒出了兩粒藥片。現在,你手心上有一顆藥片A,兩顆藥片B,並且你無法區別哪個是A,哪個是B。你如何才能嚴格遵循藥方服用藥片,並且不能有任何的浪費?
    答案:把手上的三片藥各自切成兩半,分成兩堆擺放。再取出一粒藥片A,也把它切成兩半,然後在每一堆里加上半片的A。現在,每一堆藥片恰好包含兩個半片的A和兩個半片的B。一天服用其中一堆即可。

     16、 你在一個飛船上,飛船上的計算機有n個處理器。突然,飛船受到外星鐳射武器的攻擊,一些處理器被損壞了。你知道有超過一半的處理器仍然是好的。你可以向一個處理器詢問另一個處理器是好的還是壞的。一個好的處理器總是說真話,一個壞的處理器總是說假話。用n-2次詢問找出一個好的處理器。
       答案:給處理器從1到n標號。用符號a->b表示向標號為a的處理器詢問處理器b是不是好的。首先問1->2,如果1說不是,就把他們倆都去掉(去掉了一個好的和一個壞的,則剩下的處理器中好的仍然過半),然後從3->4開始繼續發問。如果1說2是好的,就繼續問2->3,3->4,……直到某一次j說j+1是壞的,把j和j+1去掉,然後問j-1 -> j+2;或者從j+2 -> j+3開始發問,如果前面已經沒有j-1了(之前已經被去掉過了)。注意到你始終維護著這樣一個“鏈”,前面的每一個處理器都說後面那個是好的。這條鏈裡的所有處理器要麼都是好的,要麼都是壞的。當這條鏈越來越長,剩下的處理器越來越少時,總有一個時候這條鏈超過了剩下的處理器的一半,此時可以肯定這條鏈裡的所有處理器都是好的。或者,越來越多的處理器都被去掉了,鏈的長度依舊為0,而最後只剩下一個或兩個處理器沒被問過,那他們一定就是好的了。另外注意到,第一個處理器的好壞從來沒被問過,仔細想想你會發現最後一個處理器的好壞也不可能被問到(一旦鏈長超過剩餘處理器的一半,或者最後沒被去掉的就只剩這一個了時,你就不問了),因此詢問次數不會超過n-2。

      17、一個圓盤被塗上了黑白二色,兩種顏色各佔一個半圓。圓盤以一個未知的速度、按一個未知的方向旋轉。你有一種特殊的相機可以讓你即時觀察到圓上的一個點的顏色。你需要多少個相機才能確定圓盤旋轉的方向?
      答案:你可以把兩個相機放在圓盤上相近的兩點,然後觀察哪個點先變色。事實上,只需要一個相機就夠了。控制相機繞圓盤中心順時針移動,觀察顏色多久變一次;然後讓相機以相同的速度逆時針繞著圓盤中心移動,再次觀察變色的頻率。可以斷定,變色頻率較慢的那一次,相機的轉動方向是和圓盤相同的。

     18、有25匹馬,速度都不同,但每匹馬的速度都是定值。現在只有5條賽道,無法計時,即每賽一場最多隻能知道5匹馬的相對快慢。問最少賽幾場可以找出25匹馬中速度最快的前3名?百度2008年面試題

每匹馬都至少要有一次參賽的機會,所以25匹馬分成5組,一開始的這5場比賽是免不了的。接下來要找冠軍也很容易,每一組的冠軍在一起賽一場就行了(第6場)。最後就是要找第2和第3名。我們按照第6場比賽中得到的名次依次把它們在前5場比賽中所在的組命名為A、B、C、D、E。即:A組的冠軍是第6場的第1名,B組的冠軍是第6場的第2名……每一組的5匹馬按照他們已經賽出的成績從快到慢編號:

A組:1,23,4,5
B組:12,3,4,5
C組:1,2,3,4,5
D組:1,2,3,4,5
E組:1,2,3,4,5

從現在所得到的資訊,我們可以知道哪些馬已經被排除在3名以外。只要已經能確定有3匹或3匹以上的馬比這匹馬快,那麼它就已經被淘汰了。可以看到,只有上表中粗體的那5匹馬是有可能為2、3名的。即:A組的2、3名;B組的1、2名,C組的第1名。取這5匹馬進行第7場比賽,第7場比賽的前兩名就是25匹馬中的2、3名。故一共最少要賽7場。

這道題有一些變體,比如64匹馬找前4名。方法是一樣的,在得出第1名以後尋找後3名的候選競爭者就可以了。

--------------------------------------------------------------------------------------------

三、16題

◆1. 有一個長方形蛋糕,切掉了長方形的一塊(大小和位置隨意),你怎樣才能直直的一刀下去,將剩下的蛋糕切成大小相等的兩塊?

  答案:將完整的蛋糕的中心與被切掉的那塊蛋糕的中心連成一條線。這個方法也適用於立方體!請注意,切掉的那塊蛋糕的大小和位置是隨意的,不要一心想著自己切生日蛋糕的方式,要跳出這個圈子。

  ◆2. 有三筐水果,一筐裝的全是蘋果,第二筐裝的全是橘子,第三筐是橘子與蘋果混在一起。筐上的標籤都是騙人的,(比如,如果標籤寫的是橘子,那麼可以肯定筐裡不會只有橘子,可能還有蘋果)你的任務是拿出其中一筐,從裡面只拿一隻水果,然後正確寫出三筐水果的標籤。

  提示:從標著“混合”標籤的筐裡拿一隻水果,就可以知道另外兩筐裝的是什麼水果了。

  ◆3. 你有八個球。其中一個有破損,因此比其他球輕了一些。你有一架天平用來比較這些球的重量。如果只稱兩次,如何找出有破損的那個球?

  ◆4. 為什麼下水道的井蓋是圓的?

  提示:方形的對角線比邊長!

  其他答案:1圓形的井蓋可以由一個人搬動,因為它可以在地上滾。2圓形的井蓋不必為了架在井口上而旋轉它的位置。

  ◆5. 美國有多少輛車?

  ◆6. 你讓一些人為你工作了七天,你要用一根金條作為報酬。金條被分成七小塊,每天給出一塊。如果你只能將金條切割兩次,你怎樣分給這些工人?

  ◆7. 一列時速15英里的火車從洛杉磯出發,駛向紐約。另外一列時速20英里的火車從紐約出發,駛向洛杉磯。如果一隻鳥以每小時25英里的速度飛行,在同一時間從洛杉磯出發,在兩列火車之間往返飛行,到火車相遇時為止,鳥飛了多遠?

  提示:想想火車的相對速度。

  ◆8. 你有兩個罐子,分別裝著50個紅色的玻璃球和50個藍色的玻璃球。隨意拿起一個罐子,然後從裡面拿出一個玻璃球。怎樣最大程度地增加讓自己拿到紅色球的機會?利用這種方法,拿到紅色球的機率有多大?

  ◆9. 假設你站在鏡子前,擡起左手,擡起右手,看看鏡中的自己。當你擡起左手時,鏡中的自己擡起的似乎是右手。可是當你仰頭時,鏡中的自己也在仰頭,而不是低頭。為什麼鏡子中的影像似乎顛倒了左右,卻沒有顛倒上下?

  ◆10. 你有5瓶藥,每個藥丸重10克,只有一瓶受到汙染的藥丸重量發生了變化,每個藥丸重9克。給你一個天平,你怎樣一次就能測出哪一瓶是受到汙染的藥呢?

  答案:

  1 給5個瓶子標上1、2、3、4、5。

  2 從1號瓶中取1個藥丸,2號瓶中取2個藥丸,3號瓶中取3個藥丸,4號瓶中取4個藥丸,5號瓶中取5個藥丸。

  3 把它們全部放在天平上稱一下重量。

  4 現在用1×10+2×10+3×10+4×10+5×10的結果減去測出的重量。

  5 結果就是裝著被汙染的藥丸的瓶子號碼。

  ◆11. 如果你有一個容量為5夸脫的水桶和一個容量為3夸脫的水桶,怎樣準確地量出4夸脫的水?
  1.裝滿5夸脫水,並把部分水倒入3跨脫水桶,剩下2夸脫。
  2.把3夸脫水倒掉
  3.將5夸脫桶中的2夸脫水倒入3夸脫桶中。
  4.將5夸脫桶再次裝滿
  5.將5夸脫桶中的水倒入已有2夸脫水的3夸脫桶中,這樣5夸脫桶中剩下的水剛好是4夸脫

◆12. 在開汽車的鎖時,應該往哪個方向旋轉鑰匙?

  ◆13. 如果你可以移動50個州中的任何一個,你會挑哪個,為什麼?

  ◆14. 有4條狗(4只螞蟻或4個人)分別在一個廣場的4個角落裡。突然,它們同時以同樣的速度追趕在自己順時針方向的一個人,而且會緊追這個目標不放。它們需要多少時間才能相遇,相遇地點在哪裡?

  提示:它們將在廣場中央相遇,所跑的距離與它們跑的路線無關。

  ◆15.從空中放下兩列火車,每列火車都帶著降落傘,降落到一條沒有盡頭的筆直的鐵道上。兩列火車之間的距離不清楚。兩列車都面向同一個方向。在落地後,降落傘掉在地上,與火車分離。兩列火車都有一個微晶片,可以控制它們的運動。兩個晶片是相同的。兩列火車都不知道自己的位置。你需要在晶片中寫入編碼,讓這兩列火車相遇。每行編碼都有一定的執行命令的時間。

  你能使用以下指令(而且只能用這些指令):

  MF—讓火車朝前開

  MB—讓火車朝後開

  IF(P)—如果火車旁邊有降落傘,這個條件就得到了滿足。

  GOTO

  答案:

  A:MF

  IF(P)

  GOTO B

  GOTO A

  B:MF

  GOTO B

  解釋:第一行只是讓它們離開各自的降落傘。必須讓它們離開自己的降落傘,這樣後面的火車才能發現前面火車的降落傘,這樣就滿足了一個條件,它們就可以跳出起初遵守的編碼。它們起初都在A這部分迴圈,直到後面的火車發現前面火車的降落傘,這時就轉入B:並陷入B的迴圈。前面的火車還是沒有找到降落傘,所以就不停地在A裡面迴圈。由於每行編碼都有一定的執行命令時間,完成A迴圈就比完成B費時,因此後面的火車(在B迴圈中)最終將趕上前面的火車。

  16.有7克、2克砝碼各一個,天平一隻,如何只用這些物品三次將140克的鹽分成50、90克各一份?
  (1) 把2克重的砝 放在天平左端,分鹽於天平兩端直到平衡,此時,左端有鹽69克,右端有鹽71克。(2)取下天平左端的2克砝碼換上7克重的砝碼, 端重(69+7)76克,右端仍重71克,從左端取出5克鹽後,天平兩端平衡,這時左端 餘64克鹽。在取下天平兩端物品。
  (3) 用剛才稱出的5克鹽當作砝碼,與2克、7克砝碼合成14克砝碼。從64克鹽 取出14克,恰好剩下50克鹽。則其餘鹽的重量就是90克

----------------------------------------------------------------------------------------------------------------------------

四、18題

1.有A、B兩個水杯,都沒有刻度,也不允許做刻度。A杯裝滿水是5升,B杯裝滿水是3升。不借助別的任何工具,只用這兩個杯子如何精確的得到4升水
         1.先用B倒進A三升水
         2.B再盛滿,將A倒滿:B內剩1升。
         3.將A倒空:將B內的一升倒進A。
         4.B再盛滿3升。倒進A,則得4升。 
2.給你一盒蛋糕,請你切成八份,分給在場的八個人,但蛋糕盒裡還要有一份。
   首先先把蛋糕切成八份,講其中的七份分給在場的七個人,然後把蛋糕盒和其中的一分蛋糕分給沒有蛋糕的人,就可以達到目的。

3.有一個說謊島,上面居住著人還有吸血鬼,有一年島上流行瘟疫,有一半的人和吸血鬼瘋了,於是島上有神志清醒的人和精神錯亂的人,還有神志清醒的吸血鬼和精神錯亂的吸血鬼,其中神志清醒的人和精神錯亂的吸血鬼只說真話,而精神錯亂的人和神志清醒的吸血鬼只說假話,並且他們回答問題只說“是”或“不是”;有一天島上來了一位“邏輯博士”在島上遇見了P,博士問了一個問題就分出他是人還是吸血鬼,博士又問了一個問題就分辨出他是神志清醒的還是精神錯亂的。請寫出博士問得兩個問題;寫出你的思路。
條件是:神志清醒的人和精神錯亂的吸血鬼只說真話
        精神錯亂的人和神志清醒的吸血鬼之說假話
4.一天有個年輕人來到王老闆店裡買了一件禮物,這件禮物成本18元,標價21元。結果這個年輕人掏出100元來買這件禮物,王老闆當時沒有零錢,用那100元向街坊換了100元的零錢,找給年輕人79元,但是街坊後來發現那100元是**,王老闆無奈還了街坊100元,問題是:王老闆在這次交易中到底損失了多少錢?????
禮物成本價:18元
標  價:21元
老闆找了79元給年輕人,而年輕人的100元是假的這樣的話年輕人是得了一件成本價18元的禮物外加79元一共得到97元老闆在這次的交易中損失了97元

5、一群人開舞會,每人頭上都戴著一頂帽子。帽子只有黑白兩種,黑的至少 
  有一頂。每個人都能看到其他人帽子的顏色,卻看不到自己的。主持人先讓大家看 
  看別人頭上戴的是什麼帽子,然後關燈,如果有人認為自己戴的是黑帽子,就打自 
  己一個耳光。第一次關燈,沒有聲音。於是再開燈,大家再看一遍,關燈時仍然鴉 
  雀無聲。一直到第三次關燈,才有劈劈啪啪打耳光的聲音響起。問有多少人戴著黑 
  帽子? 
        假如只有一個人戴黑帽子,那他看到所有人都戴白帽,在第一次關燈時就 
  應自打耳光,所以應該不止一個人戴黑帽子;如果有兩頂黑帽子,第一次兩人都只 
  看到對方頭上的黑帽子,不敢確定自己的顏色,但到第二次關燈,這兩人應該明白 
  ,如果自己戴著白帽,那對方早在上一次就應打耳光了,因此自己戴的也是黑帽子 
  ,於是也會有耳光聲響起;可事實是第三次才響起了耳光聲,說明全場不止兩頂黑 
  帽,依此類推,應該是關了幾次燈,有幾頂黑帽。
6.燒一根不均勻的繩要用一個小時,如何用它來判斷半個小時 ?
                兩頭一起燒、從繩子中間燒、將繩子對摺燒

7.想象你在鏡子前,請問,為什麼鏡子中的影像可以顛倒左右,卻不能顛倒 
  上下? 
        因為人的兩眼在水平方向上對稱

-----------------------------------------------------------------------------------------------------

1.一個粗細均勻的長直管子,兩端開口,裡面有4個白球和4個黑球,球的直徑、兩端開口的直徑等於管子的內徑,現在白球和黑球的排列是wwwwbbbb,要求不取出任何一個球,使得排列變為bbwwwwbb。
  2.一隻蝸牛從井底爬到井口,每天白天蝸牛要睡覺,晚上才出來活動,一個晚上蝸牛可以向上爬3尺,但是白天睡覺的時候會往下滑2尺,井深10尺,問蝸牛幾天可以爬出來?
  3.在一個平面上畫1999條直線最多能將這一平面劃分成多少個部分?
  4.在太平洋的一個小島上生活著土人,他們不願意被外人打擾,一天,一個探險家到了島上,被土人抓住,土人的祭司告訴他,你臨死前還可以有一個機會留下一句話,如果這句話是真的,你將被燒死,是假的,你將被五馬分屍,可憐的探險家如何才能活下來?
  5.怎樣種四棵樹使得任意兩棵樹的距離相等。
  6.27個小運動員在參加完比賽後,口渴難耐,去小店買飲料,飲料店搞促銷,憑三個空瓶可以再換一瓶,他們最少買多少瓶飲料才能保證一人一瓶?
  7.有一座山,山上有座廟,只有一條路可以從山上的廟到山腳,每週一早上8點,有一個聰明的小和尚去山下化緣,週二早上8點從山腳回山上的廟裡,小和尚的上下山的速度是任意的,在每個往返中,他總是能在週一和週二的同一鐘點到達山路上的同一點。例如,有一次他發現星期一的8點30和星期二的8點30他都到了山路靠山腳的3/4的地方,問這是為什麼?
  8.有兩根不均勻分佈的香,每根香燒完的時間是一個小時,你能用什麼方法來確定一段15分鐘的時間?
  英文面試題目
  1. Describe your greatest achievement in the past 4-5 years?
  2. What are your short & long term career objectives? What do you think is the most ideal job for you?
  3. Why do you want to join IBM? What do you think you can contribute to IBM?
[NextPage]
============================================================
五、IBM筆試3題

  字母矩陣題目(15分鐘)
  給你一個矩陣:
   (一) (二) (三) (四) (五)
  1 a b c d e
  2 b c a e d
  3 c b e a d
  4 c e d b a
  5 e d a c b
  回答以下問題。
  (1)將第一行和第四行交換後,第一行第四個字母下面的左邊的下面的右邊的字母是 。
  ①a ②b ③c ④d ⑤e
  (2)將所有出現在d左邊的字母從矩陣中刪掉。將所有出現在a左邊的c字母從矩陣中刪掉。如果矩陣中剩下的字母的種類的數目大於3,答案為原矩陣中左上方至右下方對角線上出現兩次的字母。如果矩陣中剩下的字母的種類的數目小於或者等於3,答案為原矩陣中右上至左下對角線上出現4次的字母是 。
  ①a ②b ③c ④d ⑤e
  (3)將所有的a用4替換,所有的d用2替換,哪一列的總和 最大
  ①第1列 ②第2列 ③第3列 ④第4列 ⑤第五列
  (4)從左上角的字母開始,順時針沿矩陣外圍,第4次出現的字母是 。
  ①a ②b ③c ④d ⑤e
  (5)沿第5列從上到下,接著沿第3列從下到上