程序员面试——逻辑与智力题


Question

   有容量为3L和5L的两个杯子,请使用这两个杯子量出4L水,水可以不限量的使用

Answer

  1、用5L的杯子量出5L水

  2、将这5L水倒入3L的杯子里,倒满之后,5L杯子还剩2L水

  3、将3L杯子中的水倒掉

  4、将5L杯子中的2L水全部倒进3L杯子里面,此时3L杯子还差1L就满了

  5、用5L的杯子量出5L水,然后,将3L杯子灌满,因为3L杯子就差1L就慢,所以3L杯子灌满的时候,5L杯子中还剩4L水

 

Question

   有容量为4L和9L的两个杯子,怎么量出7L水

Answer

  1.9L杯子装满水,导入4L杯子里,4L杯子满后,9L杯子还剩5L;

  2.将4L杯子中的水倒掉,将9L杯子中剩下的5L继续导入4L杯子,4L杯子满后,9L杯子还剩1L水;

  3.将4L杯子中的水倒掉,将9L杯子中剩下的1L水导入4L杯子中,9L杯子空了,4L杯子还差3L水就满了;

  4.将9L杯子灌满,然后将9L水导入4L杯子中,4L杯子差3L满,所以4L杯子满后,9L杯子还剩6L;

  5.将4L杯子中的水倒掉,然后将9L杯中的6L水导、倒入4L杯子中,4L杯子水满的时候,9L杯子还剩下2L;

  6.将4L杯子中的水倒掉,然后将9L杯中的2L水倒入4L杯子中,4L杯子还差2L水就满了;

  7.将9L杯子水灌满,然后9L水倒入4L杯子,由于4L杯子已经有了2L,所以4L杯子满的时候,9L杯子还剩下7L。

 

Question

  有两根香,每一根香的粗细是不均匀的,每一根香燃烧完毕需要1个小时,因为香的粗细是不均匀的,所以不能依靠香的长度比例来判断时间长短,问题是,怎么设置一个15分钟的定时器。

Answer

  1、第一根香点燃两边,同时,第二根香点燃一边。

  2、第一根香燃完的时候,表示过了半个小时,此时,第二根香剩下的部分还可以燃半个小时。

  3、计时开始,此时将第二根香的另一头也点燃,那么,在燃尽的时候,15分钟就到了。

 

Question

   有1000杯水,其中只有1杯水有毒,现在只有10只老鼠,老鼠喝了有毒的水之后,在1个小时内就会死亡,问题,怎么在1个小时内找出有毒的那一杯水?

Answer

  1、1000对应1024,二进制有10位,刚好对应10只老鼠。

  2、将每一杯水标号1~1000,然后将1~1000的所有10进制数转化为2进制。比如1对应0000000001,2对应0000000010,3对应0000000011.....

  3、第1只老鼠喝第1位为1的那些数对应的水,比如0000000001对应的1,0000000011对应的3......第2只老鼠喝第2位为1的那些数对应的水,比如0000000011对应的3,0000000010对应的2,0000000111对应的7....以此类推

  4、等所有老鼠都喝完之后,等该死的老鼠都死之后,根据老鼠的死活进行下一步判断。

  5、如果1号老鼠活着,那么就将10位2进制数的第1位设为0,比如xxxxxxxxx0,相反,如果1号老鼠死了,就将10位2进制的第1位设为1,比如xxxxxxxxx1。对于2号老鼠,如果他还活着,那就将第二位设为0,比如xxxxxxxx0x,如果他死了,就将第2位设为1,比如xxxxxxxx1x,以此类推,比如1,5,6,8号老鼠都死了,其他老鼠都活着,那么,结果就是0010110001,这个数对应的10进制,就是有毒的那杯水的编号。128+32+16+1=177

 

Question

   有25匹马,有5个赛道,每一次比赛只能有5匹马参加,问题是,最少需要比较多少次,就可以找出冠军、亚军、季军?

Answer

   答案:7次。

  1、将25匹马分为5组,A、B、C、D、E组,每组有5匹马,标号A1..A5...B1..B5...C1..C5...D1...D5...E1...D5;

  2、首先让每组的5匹马进行一轮比赛(第6轮),记录每组马的冠军、亚军、季军;

    假设每组的1号都是跑得最快的(小组冠军),2号是小组亚军,3号是小组季军,那么:

      A1、B1、C1、D1、E1分别为每组的冠军;

      A2、B2、C2、D2、E2分别为每组的亚军;

      A3、B3、C3、D3、E3分别为每组的季军;

  3、让5匹冠军马比赛一次,记录冠军、亚军、季军;最快的那匹马就是全队的冠军马,但是亚军和季军不一定是全队的亚军和季军;

    假设排名是A1 > B1 > C1 > D1 > E1,那么,冠军马就是A1,临时的亚军是B1、临时的季军是C1;

    此时,冠军马不用在进行比赛了,需要注意的是D1、E1以及那么他们所在组的所有马也都不用再次比赛了,因为他们肯定是不会评上亚军和季军的,因为有B1和C1比他们快;

    还需注意,A2和A3(A组的亚军和季军),以及B2(B组的亚军),并不能保证(A2和A3)比B1快或者满,也不能保证B2比C1快或者慢。

  4、所以此时A1、D1和E1下场,空出三个位置,分别让A2、A3和B2补充,此时进行一次比赛(第7轮),找出本次的冠军和亚军,就是全队的亚军和季军;加上第6轮的冠军,就选出了全队的冠军、亚军和季军。

 

Question

 

Answer

 

 

Question

 

Answer

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM