编程求解:砝码称重问题

12个砝码,有一个重量跟其它不同,天平称三次确定哪个砝码有问题,且说明是轻是重?

5+5,2+2,1,分情况一讨论就出来了,称过的砝码可以辅助后来的比较

分略少=====不过还是解答一下吧=====如下:
第一次称重:
先随便取3个,命名为3a3b,假如3a=3b,则剩下6个的的有问题,3a3b统一命名为6a,a为正常

砝码;如果3a!=3b则随机取的这6个有问题。即第一次称重先淘汰掉6个a,有问题的6个命名

为3c3d,进入第二步。

第二次称重:
再3c中随便取2个,命名为c1c2,如果c1=c2,得出c3有问题(;第二次称重情景2:如果c1>c2,取

重的命名为c1,进行第三次称重,c1和a1比较,如果c1>a1,则c1有问题且c1重于其他砝码,反

之c1轻)

第三次称重:
c3和a1比,则如果c3>a1,则c3重于其他的砝码;反之则c3轻于其他砝码。

将砝码分成三组,每组4个,然后随便取两组进行称重,如果两个一样重,说明有问题的砝码在剩下的一堆里,如果不相等,说明在称重的两堆里。
问题缩小之后,再将其平均分为三组,可能又剩下的砝码,不用管,继续刷选,再可以淘汰剩下的中的一组砝码,继续进行相同操作,直至最后剩下3
个或两个,直接称一次就知道了。