今天面试有一道推理题,有三个箱子,三个工程师,箱子里面有工程师所需要的全部资料,每个箱子有把锁,每个锁只有两把钥匙,问怎么分配才能保证每个工程师都能单独开锁?哪位兄弟会做,给个思路

解决方案 »

  1.   

    不知这样可以不:
    工程师a,b,c箱1,2,3锁A,锁B,锁C。钥匙A.1;A.2;B.1;B.2;C.1;C.2
    那A锁住1号的前面,C锁1的后面(前、后主要是为了可以只要打开其中一把锁就可以开箱)
    同样:A锁住2号的后面,B锁2的前面。C锁3的前,B锁3的后面。
    那a(A.1,B.1);b(B.2,C.1);c(C.2,A.2).那么a可以开A与B锁。也就可以开三个箱了。
    不知这样对不对???
      

  2.   

    箱子 a     b      c
    钥匙 a1 a2 b1 b2 c1 c2
    工程师 A B C
    方案:
    箱子a中放 b1;
    箱子b中放 c1;
    箱子c中放 a1;工程师A,B,C任意拿一钥匙就可以打开全部的了~
      

  3.   

    今天面试的题目在电脑上没有实现,哪位大哥能给个思维?
      这样一个BOX类。它里面可以装水果(fruit),水果分为:苹果apple,橘子orange,梨pear
      有方法add()实现加入一种水果,remove()方法实现撤除一种水果。每种水果都有:种类list,
      重量height,颜色color。
      建立一个可以实现查询水果种类,重量,颜色的BOX。
      

  4.   

    需要建立两个类:一个Fruit类,一个Box类
      

  5.   

    先带鸡过去~然后自己回去,把米带过去放下~再把鸡带回来,把鸡放下,把狗带过去~回来一趟再带鸡这题和原来一个一家人划船过河的道理一样~那题还有人做成FLASH呢
      

  6.   

    cozmic(蓝色的猪) 的想法跟我一样
      

  7.   

    建一个接口A 定义方法getList,getHeight,getColor建立Box
    public class Box
    {
      static HashMap al = new HashMap();
      public void add(String name, A a)
      {
         al.put(name,a);
      }    publci void remove(String name)
      {  
         al.remove(name);
      }   public A getFruit(String name)
      {
         return (A)al.get(name);
      }}
      

  8.   

    狗 d
    鸡 c
    米 r
    (dcr,0)---(dr,c)----(r,dc)----(c,rd)------(0,dcr)
      

  9.   

    我觉得水果最好定义为抽象类而不是接口,因为抽象类是继承关系is-a;
    接口表达的是,like-a .
    实现时,可以定义一个水果的接口,一个水果的抽象类(实现了水果接口),然后
    让每个水果类别实现水果抽象类。
      

  10.   

    回复人: cozmic(蓝色的猪) ( ) 信誉:100  2005-08-12 00:22:00  得分: 0  
    佩服,佩服!
    思维敏捷!
      

  11.   

    cozmic(蓝色的猪)
    思维敏捷!强
      

  12.   

    没想到这么多兄弟关注,同时感谢cozmic(蓝色的猪) ,果然是高!!
    明天晚上揭贴!