二进制的应用

来源:百度知道 编辑:UC知道 时间:2024/05/17 08:14:25
一道题目
有两种不同的药片,一种重10mg,一种重11mg,这两种药片外形相同,且装在相似的药瓶中,由于工作人员的疏忽,将若干瓶未贴标签的药瓶混在一起。现要求只用一次天平,把这两种药瓶完全分开。(假设现在为10瓶)总共11000毫克

有两种不同的药片,一种重10毫克,另一种重11毫克。这两种药片外形相同,且装在相似的药瓶中。由于工作人员疏忽,将若干瓶尚未贴上标签的药瓶混放在一起了。现在要求用天平只称一次,把两种药瓶完全分开。
提示:用二进制判别法,即
(1) 先把所有药瓶编号;
(2) 从第i瓶中取出2i-1片药片;
(3) 称出所有取出药片的总重量;
(4) 以10毫克药片为标准,算出所取药片的标准重量;
(5) 将标准重量与实际重量之差化为二进制数;
(6) 根据二进制规律判断区分两种药片。
变量说明:n药瓶数,m药瓶编号,为h为标准重量,g为称出的总重量
REM 区分药瓶
CLS
INPUT "N="; N
H = 0
FOR I = 1 TO N ‘这里用了FOR循环
H = H + 2 ^ (I - 1) * 10 ‘以每片10mg为标准计算总重量
NEXT I
DO ‘这里用了UNTIL循环
INPUT "G="; G ‘G为称出的实际总重量
LOOP UNTIL G >= H AND G <= H * 1.1
G = G – H ‘这时的G是两者的差
M = 1
DO WHILE G <> 0 ‘这里用了WHILE循环
R = G MOD 2 ‘把G转化为二进制数
G = INT(G / 2) ‘也可用G = G \ 2
IF R = 1 THEN PRINT M; ‘如这位二进制数为1,就输出该位的位值
M = M + 1 ‘给二进制数位数计数
LOOP