今天看到了一道微软的面试题感觉蛮有意思的,有四个罐子,罐子里放入了很多药丸,但其中有一个罐子内的药丸被污染了,这个罐子内的药丸比正常的药丸重1个单位,问,如果只能称一次,如何确定是哪个罐子内的药丸被污染了。
想了半天不得其解,看答案后恍然大悟,我老是想把罐子当成称量的基本单位,确忽略了药丸,其实,可以从罐子中取出药丸进行称重。解法如下:
从第一个罐子中取一个药丸、第二个罐子取两个药丸、第三个罐子取三个药丸、第四个罐子取四个药丸,假设正常药丸的重量为X,则将取出的十个药丸进行称重,若得到的重量是10X+1,则说明是第一个罐子被污染了,如果是10X+2,则说明是第二个罐子被污染了,以此类推,便可得出是哪个罐子被污染了.