IT名企面試:IBM筆試題
在IBM公司進行面試的時候,首先考察的則是基礎(chǔ)知識。那么下面就總結(jié)了一些IBM筆試題,以供大家參考。
IBM筆試題:有一座山,山上有座廟,只有一條路可以從山上的廟到山腳,每周一早上8點,有一個聰明的小和尚去山下化緣,周二早上8點從山腳回山上的廟里,小和尚的上下山的速度是任意的,在每個往返中,他總是能在周一和周二的同一鐘點到達山路上的同一點。例如,有一次他發(fā)現(xiàn)星期一的8點30和星期二的8點30他都到了山路靠山腳的3/4的地方,問這是為什么?
答案一:
可以用畫圖法來解釋:
在一個平面上,x 軸代表從8點開始的時間,y 軸代表距廟的距離。那么從廟到山腳就是一條從左下到右上的一條曲線,從山腳到廟就是一條從左上到右下的一條曲線。考慮到兩條曲線的起始點和終點,兩線必定交于一點。
答案二:
還有一種更簡單的解釋,是讓兩個人從山頂和山腳同時相向而行,一定有一個時刻相遇,這樣就證明了。
IBM筆試題:在一個平面上畫1999條直線,最多能將這一平面劃分成多少個部分?
沒有直線時有一個空間;(1)
1條直線時,這條這些可以將這個空間分成兩個;(1+1)
2條直線時,第二條直線可以和***條直線相交,這樣第二條直線可以將兩個空間分成四個;(1+1+2)
....
注意到畫每條直線時能增加多少個空間,取決于此直線從多少個空間中通過。
而從多少個空間中通過,取決于和多少條直線相交。
例如,如果一條直線和其它5條直線相交,那么***可以通過6個空間,此直線可以增加6個子空間。
畫每條直線時,能相交的直線數(shù)為總的已經(jīng)畫過的直線。
所以總的空間數(shù)最多為
1+1+2+3+...+1999 = 1999001
IBM筆試題:不均勻分布的香,每根香燒完的時間是一個小時,你能用什么方法來確定一段15分鐘的時間?
***根點燃兩頭,第二根只點一頭。
當(dāng)***根燒完時,時間過去了30分鐘,所以第二根還能燒30分鐘。這時點燃第二根的另外一頭,第二根香還能燒的時間就是15分鐘。
IBM筆試題:有27個人去買礦泉水,商店正好在搞三個空礦泉水瓶可以換一瓶礦泉水的活動,他們至少要買幾瓶礦泉水才能每人喝到一瓶礦泉水?
答案一:
如果開始買3瓶,那么可以四個人喝,并且還能剩一個空瓶。
如果開始買9瓶,可以13個人喝,***還剩一個空瓶。
如果開始買18瓶,那么26個人喝,可以剩下兩個空瓶。
如果開始買19瓶,那么27個人喝,***剩下三個空瓶。所以最少買19瓶。
如果可以向商店先欲借一個空瓶,那么買18瓶,***一個人喝完再將空瓶還給商店。
那么買18瓶也可以滿足要求。
答案二:
x + x/3 + x/3^2 + ... = x/(1-1/3)=27
x=18;
IBM筆試題:c++中引用和指針有什么不同?指針加上什么限制等于引用?
引用不是一個變量,它只表示該引用名是目標(biāo)變量名的一個別名,它本身不是一種數(shù)據(jù)類型,因此引用本身不占存儲單元,系統(tǒng)也不給引用分配存儲單元。引用一經(jīng)確定就不能修改。
指針是一個變量,需要在內(nèi)存中分配空間,此空間中存儲所指對象的地址。由于指針是一個普通變量,所以其值還可以通過重新賦值來改變。
把指針定義為const后,其值就不能改變了,功能和引用類似,但有本質(zhì)的區(qū)別。
IBM筆試題:一普查員問一女人,“你有多少個孩子,他們多少歲?”
女人回答:“我有三個孩子,他們的歲數(shù)相乘是36,歲數(shù)相加就等于旁邊屋的門牌號碼。“普查員立刻走到旁邊屋,看了一看,回來說:“我還需要多少資料。”女人回答:“我現(xiàn)在很忙,我***的孩子正在樓上睡覺。”普查員說:”謝謝,我己知道了。”
問題:那三個孩子的歲數(shù)是多少。
36 = 1 × 2 × 2 × 3 × 3
所有的可能為
1,1,36;sum = 38
1,2,18;sum = 21
1,3,12;sum = 16
1,4,9;sum = 14
1,6,6;sum = 13
2,2,9;sum = 13
2,3,6;sum = 11
3,3,4;sum = 10
由于普查員知道了年齡和之后還是不能確定每個孩子的年齡,所以可能性為
1,6,6;sum = 13
2,2,9;sum = 13
由于***(暗含只有一個***)的孩子在睡覺,所以只可能是
2,2,9;sum = 13
一個小猴子邊上有100根香蕉,它要走過50米才能到家,每次它最多搬50根香蕉,每走1米就要吃掉一根,請問它最多能把多少根香蕉搬到家里。
小猴子可以采用如下策略:
小猴子先搬50根,走到1米處,路上吃掉1根,放下48根后返回起始點,并在返回路上吃剩下的1根。然后將起始點處的50根香蕉搬到1米處,又在路上吃掉1根。這樣總共消耗了3根香蕉,將所有香蕉向前搬動了1米。采用類似的策略搬動16米后,總共消耗了48根香蕉,還剩下52根香蕉。
如果繼續(xù)按照同樣的策略向前移動到17米處,則剩下49根香蕉;如果直接在16米處丟掉2根香蕉,搬著50根香蕉向前走,在17米處也是有49根香蕉。所以猴子在17米處最多可以保留49根香蕉。
繼續(xù)搬到家還有33米,所以***剩的香蕉數(shù)16根。
IBM筆試題:媽媽有2000元,要分給她的2個孩子。由哥哥先提出分錢的方式,如果弟弟同意,那么就這么分。但如果弟弟不同意,媽媽會沒收1000元,由弟弟提出剩下 1000元的分錢方式,這時如果哥哥同意了,就分掉這剩下的1000元。但如果哥哥也不同意,媽媽會把剩下的1000元也拿走,然后分別只給他們每人100元。
問:如果你是哥哥,你會提出什么樣的分錢方式,使你有可能得到最多的錢?(最小單位1元)
此題和海盜分金問題有些相似。(可以在本博客中找到關(guān)于海盜分金的問題和解答。)
哥哥提出分配方案時,弟弟是否同意取決于拒***是否可以獲得更多利益。弟弟分配時,哥哥是否同意也取決于拒***是否可以獲得更多好處。
所以采取由后向前推導(dǎo)的方法。
如果在兩次分配中弟弟和哥哥都不同意,則弟弟和哥哥各獲得100元。
弟弟分錢時,為保證哥哥同意,會提出哥哥101元,弟弟899元的分配方法。因為哥哥獲得了比拒***的更多利益,所以必然會同意。
哥哥分錢時,為保證弟弟同意,會提出哥哥1100元,弟弟900元的分配方法。因為弟弟獲得了比拒***的更多利益,所以必然會同意。
也就是說,最終哥哥會提出哥哥1100元,弟弟900元的分配方法。#p#
IBM筆試題:有三個酒杯,其中兩個大酒杯每個可以裝8兩酒,一個可以裝3兩酒?,F(xiàn)在兩個大酒杯都裝滿了酒,只用這三個杯子怎么把酒平均的分給4個人喝?
總共16兩酒,4個人喝,平均每人喝4兩。
假設(shè)下面的三個數(shù)是8兩,8兩和4兩酒杯中的酒。
8 8 0
8 5 3
***個人先喝3兩,變成
8 5 0
8 2 3
第二個人先喝2兩,變成
8 0 3
8 3 0
5 3 3
5 6 0
2 6 3
2 8 1
***個人再喝1兩,就剛剛喝了4兩,變成
2 8 0
0 8 2
0 7 3
3 7 0
3 4 3
6 4 0
6 1 3
第三個人先喝1兩,變成
6 0 3
8 0 1
第四個人先喝1兩,變成
8 0 0
5 0 3
第三個人再喝3兩,就剛剛喝了4兩,變成
5 0 0
2 0 3
第二個人再喝2兩,就剛剛喝了4兩,變成
0 0 3
第四個人再喝3兩,就剛剛喝了4兩
為了平均,每個人需要喝4兩。考慮到我們有一個3兩的杯子,所以問題的關(guān)鍵是如何量出盡可能多的1兩。
由于3*3-8=1,我們可以將3杯3兩倒入8兩杯中,剩下的就是1兩。用這個方法,我么可以在總數(shù)為9兩,10兩和11兩時3次量出1兩酒。
所以解題步驟就成為首先量出3兩和2兩,這時剩下11兩,然后量出3次1兩酒,然后再2次量出3兩酒,***剩下2兩。
IBM筆試題:16個硬幣,A和B輪流拿走一些,每次拿走的個數(shù)只能是1,2,4中的一個數(shù)。誰***拿硬幣誰輸。
問:A或B有無策略保證自己贏?
B可以保證自己贏。
如果A拿1個,則B拿2個;如果A拿2個,則B拿1個;如果A拿4個,則B拿2個。這樣每次AB加起來都是3或者6,所以***會剩下1個或4個。如果是1個則A直接輸了;如果剩下4個,A全拿則輸了,如果不全拿,B繼續(xù)采取上面的策略,***還是剩下1個,還是A輸。
IBM筆試題:村子中有50個人,每人有一條狗。在這50條狗中有病狗(這種病不會傳染)。于是人們就要找出病狗。每個人可以觀察其他的49條狗,以判斷它們是否生病,只有自己的狗不能看。觀察后得到的結(jié)果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要槍斃自己的狗,而且每個人只有權(quán)利槍斃自己的狗,沒有權(quán)利打死其他人的狗。***天,第二天都沒有槍響。到了第三天傳來一陣槍聲,問有幾條病狗,如何推算得出?
答案:
假設(shè)有1條病狗,病狗的主人會看到其他狗都沒有病,那么就知道自己的狗有病,所以***天晚上就會有槍響。因為沒有槍響,說明病狗數(shù)大于1。
假設(shè)有2條病狗,病狗的主人會看到有1條病狗,因為***天沒有聽到槍響,是病狗數(shù)大于1,所以病狗的主人會知道自己的狗是病狗,因而第二天會有槍響。既然第二天也每有槍響,說明病狗數(shù)大于2。
由此推理,如果第三天槍響,則有3條病狗。
IBM筆試題:開關(guān)和燈泡的對應(yīng)關(guān)系?
在房里有三盞燈,房外有三個開關(guān),在房外看不見房內(nèi)的情況,你只能進門一次,你用什么方法來區(qū)分哪個開關(guān)控制哪一盞燈?
答案:
設(shè)三個開關(guān)是1、2、3。打開開關(guān)1等半個小時,關(guān)上開關(guān)1并打開開關(guān)2。
進房后去摸燈泡,熱的是開關(guān)1對應(yīng)的燈泡;亮的是開關(guān)2對應(yīng)的燈泡;不亮不熱的是開關(guān)3對應(yīng)的燈泡。
分析:
首先想到的就是通過打開不同的開關(guān),進去后看燈是否亮來找出對應(yīng)關(guān)系。可能打開的開關(guān)數(shù)量只有0,1,2,3共四種情況,沒有一種情況能解決這個問題。所以必須找到其它的信號。鑒于燈泡亮一段時間后會發(fā)熱,我們可以使用燈的熱度作為一個信號。這樣我們就有了熱且亮,熱不亮,亮不熱,不熱不亮四種狀態(tài),足以用來區(qū)分三只燈泡了。
這個題可以理解成一個編碼問題,燈泡的狀態(tài)作為編碼空間,進屋的次數(shù)作為編碼位數(shù)。
如果只使用燈泡是否亮來判斷,題目就相當(dāng)于用一位二進制數(shù)來表示三種狀態(tài),是不可能的事情。加入了燈泡是否熱后,就相當(dāng)于用一位四進制數(shù)來表示三種狀態(tài),足夠了。
此題的一些可能變化:
1. 在房里有四盞燈,房外有四個開關(guān),在房外看不見房內(nèi)的情況,你只能進門一次,你用什么方法來區(qū)分哪個開關(guān)控制哪一盞燈?
2. 在房里有n盞燈,房外有n個開關(guān),在房外看不見房內(nèi),且進門后只能觀察燈的亮度的情況下,你需要進門多少次才能區(qū)分哪個開關(guān)控制哪一盞燈?
3. 在房里有n盞燈,房外有n個開關(guān),每個開關(guān)有三種狀態(tài)(開,關(guān),半開(亮度為開的一半))在房外看不見房內(nèi),且進門后只能觀察等的亮度的情況下,你需要進門多少次才能區(qū)分哪個開關(guān)控制哪一盞燈?
答案:
1.用上面你說的四種狀態(tài)熱且亮,熱不亮,亮不熱,不熱不亮就可以一次確定了
2. 至少需要進門n/3次吧
3 加入一種狀態(tài),應(yīng)該需要n/6
【編輯推薦】