今天去面试java程序员,在笔试题的附加题中有这么一道题:有12个小球,其中一个与另外11个重量不相同(不知是轻还是重),用天枰称三次,找到那个不同的小球.

解决方案 »

  1.   

    首先,把12个小球分成三等份,每份四只。 
    拿出其中两份放到天平两侧称(第一次) 
    情况一:天平是平衡的。 
    那么那八个拿上去称的小球都是正常的,特殊的在四个里面。 
    把剩下四个小球拿出三个放到一边,另一边放三个正常的小球(第二次) 
    如天平平衡,特殊的是剩下那个。 
    如果不平衡,在天平上面的那三个里。而且知道是重了还是轻了。 
    剩下三个中拿两个来称,因为已经知道重轻,所以就可以知道特殊的了。(第三次) 
    情况二:天平倾斜。 
    特殊的小球在天平的那八个里面。 
    把重的一侧四个球记为A1A2A3A4,轻的记为B1B2B3B4。 
    剩下的确定为四个正常的记为C。 
    把A1B2B3B4放到一边,B1和三个正常的C小球放一边。(第二次) 
    情况一:天平平衡了。 
    特殊小球在A2A3A4里面,而且知道特殊小球比较重。 
    把A2A3称一下,就知道三个里面哪个是特殊的了。(第三次) 
    情况二:天平依然是A1的那边比较重。 
    特殊的小球在A1和B1之间。 
    随便拿一个和正常的称,就知道哪个特殊了。(第三次) 
    情况三:天平反过来,B1那边比较重了。 
    特殊小球在B2B3B4中间,而且知道特殊小球比较轻。 
    把B2B3称一下,就知道哪个是特殊的了。(第三次) 
    转的。  呵呵 
    http://zhidao.baidu.com/question/104646309.html