题目标题

10瓶药,其中有一瓶假药,每瓶2000粒,正常每一粒1g,异常的是0.9g。现有一精密仪器:
问题一:如何称重一次找出假药的瓶子。
问题二,如果有两瓶假药,如何称重一次找出假药。

难度:中级

算法 数据结构
参考解析

问题一:只要把药瓶打开,第一个瓶里拿一粒,第二个瓶里拿两粒,依次类推,第五瓶拿五粒,然后放在天平上,用法码称出重量。根据题目可知,那坏的药每粒少1克。再根据你称出的重量,可以知道哪个瓶是坏的。如果第一瓶坏了,肯定比全是好药少了0.1g,如果是第二瓶坏了,那比全是好药少了0.2g,依次,如果第五瓶坏了,就比全是好药少了0.5g。
问题二:考虑斐波那契数列的方式,按照1,2,3,5,8…这样的斐波那契数列取不同片数,这样缺失的重量只能分解为数列唯一的两数之和