学编程必看:10道逻辑思维测试题(附答案)

发布时间:2020-06-10 21:48:53

  原标题:学编程必看:10道逻辑思维测试题(附答案)

  摘要:学会编程,不仅可以成为你谋生的技能,还能大大提高你的逻辑思维能力,当你面对人生各种困境时,你才会快速找到解决办法。

  学会编程,不仅可以成为你谋生的技能,还能大大提高你的逻辑思维能力。

  当你面对人生中各种困境时,你的逻辑思维能力可以帮你很快的找到解决办法。

  反之,如果一个人的逻辑思维能力很糟糕,他的人生各方面往往也会很糟糕。

  电影《教父》里面有句台词,“花半秒钟就看透事物本质的人,和花一辈子都看不清事物本质的人,注定是截然不同的命运。”

  这里说的“本质”,就是指逻辑思维能力。

  弄懂以下10道逻辑思维测试题,可以快速提高你的逻辑思维能力,学编程的朋友,一定要好好看看哦!(点击问题下方图片,可显示答案。)

  一、有口井7米深,有个蜗牛从井底往上爬,白天爬3米,晚上往下坠2米,问蜗牛几天能从井里爬出来?

  答案:蜗牛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块钱能吃几个桃?

  答案:

  1块钱买10个桃,剩10个核;

  9个核换3个桃,加上余下的一个,剩4个核;

  3个核换一个桃,加上余下的一个,剩2个核;

  赊1个桃,吃完后剩3个核都给卖桃的,顶赊的那个。

  加起来,1块钱能吃15个桃。

  三、小王、小张、小赵三个人是好朋友,他们中间其中一个人下海经商,一个人考上了重点大学,一个人参军了。此外他们还知道以下条件:小赵的年龄比士兵的大;大学生的年龄比小张小;小王的年龄和大学生的年龄不一样。请推出这三个人中谁是商人?谁是大学生?谁是士兵?

  答案:

  小张是商人,小赵是大学生,小王是士兵。

  解题思路:假设小赵是士兵,那么就与题目中"小赵的年龄比士兵的大"这一条件矛盾了,因此,小赵不是士兵;假设小张是大学生,那就与题目中"大学生的年龄比小张小"矛盾了,因此,小张不是大学生;假设小王是大学生,那么,就与题目中"小王的年龄和大学生的年龄不一样"这一条件矛盾了,因此,小王也不是大学生。所以,小赵是大学生。由条件小赵的年龄比士兵的大,大学生的年龄比小张小得出小王是士兵,小张是商人。

  四、姐姐上街买菜回来后,就随手把手里的一些零钱放在了抽屉里,可是,等姐姐下午再去拿钱买菜的时候发现抽屉里的零钱没有了,于是,她就把三个妹妹叫来,问她们是不是拿了抽屉里的零钱。

  老二说:“我拿了,中午去买零食了。”

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

  小妹说:“总之,我与老三都没有拿。”

  这三个人中有一个人在说谎,那么到底谁在说谎?谁把零钱拿走了?

  答案:

  丙说谎,甲和丙都拿了一部分。

  假设甲说谎的话,那么乙也说谎,与题意不符;

  假设乙说谎,那么甲也说谎,与题意不符;

  那么,说谎的肯定是丙了,只有甲和丙都拿零钱了才符合题意。

  五、现有2个空水壶,容积分别为5升和6升,如何只用这2个水壶取得3升的水?(不能借助别的容器)

  答案:

  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分钟内过 桥呢?

  答案:

  2+1先过,用了2分钟;

  然后1回来送手电筒,用了1分钟;

  5+10再过,用了10分钟;

  2回来送手电筒,用了2分钟;

  2+1过去,用了2分钟;

  总共用了2+1+10+2+2=17分钟。

  七、有7克、2克砝码各一个,天平一只,如何只用这些物品称三次,将140克的盐分成50、90克各一份?

  答案:

  解法一:

  ①用天平将盐分成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个是坏的(重量与其余鸡蛋不同),现要求用天平称三次,称出哪个鸡蛋是坏的!

  答案:

  把这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)<(1,4,7),与(2,3,5)>(1,4,7)分析方法类似。

  3)如果(1,2,5)<(3,4,6),分析方法与(1,2,5)>(3,4,6)的情况类似。

  九、烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一小时十五分钟呢? (微软的笔试题)

  答案:

  半小时:两头一起烧

  一小时十五分钟:先取两根绳子,一根从一端烧,一根从两端烧,两端烧的绳子烧完时,将一端烧的绳子熄灭。这样得到半个小时的记时。将刚才熄灭的绳子两端点燃,燃尽的时间即为15分钟。再取一条两头一起烧,加起来就是一小时十五分钟。

  十、2n个人排队进电影院,票价是50元。在这2n个人当中,其中n个人只有50元,另外n个人只有100元面钞。愚蠢的电影院开始卖票时1分钱也没有。问:有多少种排队方法使得每当一个拥有100元面钞的人买票时,电影院都有50元找钱?

  答案:

  本题可用递归算法,但时间复杂度为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)!]。

  本文来自花都宝比万像程序员培训学校www.bbwxjy.com,图片来自公开网络,转载请注明出处。

  责任编辑:

学编程必看:10道逻辑思维测试题(附答案)

相关推荐