你當前所在位置:首頁 > IT課程常見問題 > 學編程必看:10道邏輯思維測試題(附答案)

學編程必看:10道邏輯思維測試題(附答案)

摘要:學會編程,不僅可以成為你謀生的技能,還能大大提高你的邏輯思維能力,當你面對人生各種困境時,你才會快速找到解決辦法。

學會編程,不僅可以成為你謀生的技能,還能大大提高你的邏輯思維能力。

當你面對人生中各種困境時,你的邏輯思維能力可以幫你很快的找到解決辦法。

反之,如果一個人的邏輯思維能力很糟糕,他的人生各方面往往也會很糟糕。

1.jpg

電影《教父》里面有句臺詞,“花半秒鐘就看透事物本質的人,和花一輩子都看不清事物本質的人,注定是截然不同的命運。”

這里說的“本質”,就是指邏輯思維能力。

弄懂以下10道邏輯思維測試題,可以快速提高你的邏輯思維能力,學編程的朋友,一定要好好看看哦!(點擊問題下方圖片,可顯示答案。)


一、有口井7米深,有個蝸牛從井底往上爬,白天爬3米,晚上往下墜2米,問蝸牛幾天能從井里爬出來?

11.jpg

答案:蝸牛5天能從井里爬出來。

第一天白天向上爬3米,晚上墜2米,累計上升高度為1米,列式為3-2=1;

第二天白天向上爬3米,晚上墜2米,累計上升高度為2米,列示為1+3-2=2;

第三天白天向上爬3米,晚上墜2米,累計上升高度為3米,列示為2+3-2=3;

第四天白天向上爬3米,晚上墜2米,累計上升高度為4米,列示為3+3-2=4;

第五天白天向上爬3米,4+3=7,就可以爬出井口了。


以上是比較笨的解法,另一種比較快速聰明的解法為:


設需要X天蝸牛爬出7米深的井,那么根據題意可得

(3-2)*(X-1)+3=7,解出方程式可得X=5。

3-2為每天蝸牛的實際上升高度,第X天白天蝸牛爬升3米即可爬出井口,那么X-1表示在第X天之前的累計爬升高度。


所以有口井7米深,有個蝸牛從井底往上爬 ,白天爬3米,晚上墜2米。蝸牛5天能從井里爬出來。


二、一毛錢一個桃,三個核換一個桃,拿1塊錢能吃幾個桃?

22.jpg

答案:


1塊錢買10個桃,剩10個核;

9個核換3個桃,加上余下的一個,剩4個核;

3個核換一個桃,加上余下的一個,剩2個核;

賒1個桃,吃完后剩3個核都給賣桃的,頂賒的那個。

加起來,1塊錢能吃15個桃。


三、小王、小張、小趙三個人是好朋友,他們中間其中一個人下海經商,一個人考上了重點大學,一個人參軍了。此外他們還知道以下條件:小趙的年齡比士兵的大;大學生的年齡比小張小;小王的年齡和大學生的年齡不一樣。請推出這三個人中誰是商人?誰是大學生?誰是士兵?

33.jpg

答案:


小張是商人,小趙是大學生,小王是士兵。 


解題思路:假設小趙是士兵,那么就與題目中"小趙的年齡比士兵的大"這一條件矛盾了,因此,小趙不是士兵;假設小張是大學生,那就與題目中"大學生的年齡比小張小"矛盾了,因此,小張不是大學生;假設小王是大學生,那么,就與題目中"小王的年齡和大學生的年齡不一樣"這一條件矛盾了,因此,小王也不是大學生。所以,小趙是大學生。由條件小趙的年齡比士兵的大,大學生的年齡比小張小得出小王是士兵,小張是商人。


四、姐姐上街買菜回來后,就隨手把手里的一些零錢放在了抽屜里,可是,等姐姐下午再去拿錢買菜的時候發現抽屜里的零錢沒有了,于是,她就把三個妹妹叫來,問她們是不是拿了抽屜里的零錢。

老二說:“我拿了,中午去買零食了。”

老三說:“我看到老二拿了。”

小妹說:“總之,我與老三都沒有拿。”

這三個人中有一個人在說謊,那么到底誰在說謊?誰把零錢拿走了?

44.jpg

答案:


丙說謊,甲和丙都拿了一部分。

假設甲說謊的話,那么乙也說謊,與題意不符;

假設乙說謊,那么甲也說謊,與題意不符;

那么,說謊的肯定是丙了,只有甲和丙都拿零錢了才符合題意。


五、現有2個空水壺,容積分別為5升和6升,如何只用這2個水壺取得3升的水?(不能借助別的容器)

55.jpg

答案:


6升水壺a,5升水壺b

將a裝滿,倒入b中,a剩余1升水;

倒空b,a中剩余的水倒入b中,再將a裝滿,倒入b中,a剩余2升水;

倒空b,a中剩余的水倒入b中,再將a裝滿,倒入b中,a剩余3升水。


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

66.jpg

答案:


2+1先過,用了2分鐘;

然后1回來送手電筒,用了1分鐘;

5+10再過,用了10分鐘;

2回來送手電筒,用了2分鐘;

2+1過去,用了2分鐘;

總共用了2+1+10+2+2=17分鐘。


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

77.jpg

答案:


解法一:

①用天平將鹽分成70g兩份,即140 ->70 + 70

②用天平將其中一份70g的鹽分成35g兩份,即70 ->35 + 35

③把兩個砝碼放在天平兩邊,將35g的鹽分成20克和15克,即35 + 2 + 7 ->(20 + 2) + (15 + 7)

將得到的20g鹽和最開始的70g鹽放在一起即得到90g的鹽,其余的鹽放在一起就是50g。即

90 = 20 + 70

50 = 15 + 35


解法二:

①140 + 2 ->71 + (69 + 2)

②71 + 9 ->40 + (31 + 9)

③31 + 69 -> 50 + 50

90 = 50 + 40


解法三:

①140 ->70 + 70

②70 ->61 + 9  將兩個砝碼放在一邊,即可稱出9g

③61 -> (9 +2) + 50

90 = 9 + 11 + 70


解法四:

①140 ->70 + 70

②70 ->35 + 35

③35 + 70 + 2 + 7 ->(50 + 7) + (55 + 2)

90 = 55 + 35


解法五:

①2 + 7 = 9

②2 + 7 + 9 =18

③7 + 18 = 23 + 2

50 = 23 + 9 +18


解法六:

①140 + 2 ->71 + (69 + 2)

②7 = 2 + 5;69剩64

③2 + 5 + 7 = 14;64剩50

90 = 14 + 5 + 71


解法七:

①2 + 7 = 9

②7 + 9 = 16

③9 + 16 = 25

50 = 25 + 16 + 9


解法八:

①2 + 7 = 9

②7 + 9 = 2+ 14

③2 + 14 + 9 = 18 + 7

50 = 2 + 7 + 9 + 14 + 18


八、有12個雞蛋,其中有1個是壞的(重量與其余雞蛋不同),現要求用天平稱三次,稱出哪個雞蛋是壞的!

88.jpg

答案:


把這12個雞蛋分成3組(1,2,3,4)、(5,6,7,8)和(9,10,11,12)。

首先稱(1,2,3,4)和(5,6,7,8),稱的結果有如下幾種可能:


▼ 第一種可能:(1,2,3,4)=(5,6,7,8)【第一次稱重】

說明1~8的雞蛋都是好雞蛋。此時,再接著稱(6,7,8)和(9,10,11)。【第二次稱重】

此時會存在以下三種可能性:

1)如果(6,7,8)=(9,10,11),說明壞雞蛋是12。在這種情況下,只需要稱2次就能找出壞雞蛋。


2)如果(6,7,8)>(9,10,11),說明壞雞蛋在(9,10,11)中,同時可以說明壞雞蛋一定比好雞蛋輕。接著稱9和10。如果9=10,則說明11為壞雞蛋;否則,輕的為壞雞蛋。【第三次稱重】


3)如果(6,7,8)<(9,10,11),與2)使用相同的方法稱3次就可以得到壞雞蛋。【第三次稱重】


▼ 第二種可能:(1,2,3,4)≠(5,6,7,8)【第一次稱重】

在這種情況下,說明壞雞蛋一定在(1,2,3,4,5,6,7,8)中。

對于(1,2,3,4)>(5,6,7,8)和(1,2,3,4)<(5,6,7,8)兩種情況,分析方法是類似的。

在這里以(1,2,3,4)>(5,6,7,8)為例進行分析:

此時接著稱重(1,2,5)和(3,4,6)【第二次稱重】


1)如果(1,2,5)=(3,4,6),說明壞雞蛋一定在(7,8)中,而且壞雞蛋一定比好雞蛋輕。

接著稱重(7,8),輕的就是壞雞蛋。【第三次稱重】


2)如果(1,2,5)>(3,4,6),壞雞蛋一定在(1,2,3,4,5,6)中,再繼續稱(2,3,5)和(1,4,7)。【第三次稱重】

① 如果(2,3,5)=(1,4,7),說明6是壞雞蛋。

② 如果(2,3,5)>(1,4,7),

假如壞雞蛋重,此時壞雞蛋為(1,2,3,4)∩(1,2,5)∩(2,3,5)=2。

假如壞雞蛋輕,此時壞雞蛋為(5,6,7,8)∩(1,4,7)∩(3,4,6)=空集。說明壞雞蛋一定更重,且壞雞蛋為2。

③ 如果(2,3,5)


3)如果(1,2,5)


九、燒一根不均勻的繩,從頭燒到尾總共需要1個小時。現在有若干條材質相同的繩子,問如何用燒繩的方法來計時一小時十五分鐘呢? (微軟的筆試題)

99.jpg

答案:


半小時:兩頭一起燒


一小時十五分鐘:先取兩根繩子,一根從一端燒,一根從兩端燒,兩端燒的繩子燒完時,將一端燒的繩子熄滅。這樣得到半個小時的記時。將剛才熄滅的繩子兩端點燃,燃盡的時間即為15分鐘。再取一條兩頭一起燒,加起來就是一小時十五分鐘。


十、2n個人排隊進電影院,票價是50元。在這2n個人當中,其中n個人只有50元,另外n個人只有100元面鈔。愚蠢的電影院開始賣票時1分錢也沒有。問:有多少種排隊方法使得每當一個擁有100元面鈔的人買票時,電影院都有50元找錢?

100.jpg

答案:


本題可用遞歸算法,但時間復雜度為2的n次方,也可以用動態規劃法,時間復雜度為n的平方,實現起來相對要簡單得多,但最方便的就是直接運用公式:排隊的種數=(2n)!/[n!(n+1)!]。


如果不考慮電影院能否找錢,那么一共有(2n)!/[n!n!]種排隊方法(即從2n個人中取出n個人的組合數)


對于每一種排隊方法,如果他會導致電影院無法找錢,則稱為不合格的,這種排隊方法有(2n)!/[(n-1)!(n+1)!]種(從2n個人中取出n-1個人的組合數)


所以合格的排隊種數就是(2n)!/[n!n!]- (2n)!/[(n-1)!(n+1)!] =(2n)!/[n!(n+1)!]。


課程預約

极速1分彩_Welcome