如果称量结果为even,则每个硬币都是真的,否则,如果结果为up,将左右两边的硬币对换
对于结果不是even的称量,统计各个硬币在两边出现的次数,由于只有一个假的,则假硬币出现的次数必等于结果不是even的次数
最后遍历一边所有硬币,如果不能确定为真且某一边出现的次数等于结果不是even的次数,则它就是假的,同时,可以判断是轻的还是重的,因为数据保证3次称量必定可以找出来
代码:
如果称量结果为even,则每个硬币都是真的,否则,如果结果为up,将左右两边的硬币对换
对于结果不是even的称量,统计各个硬币在两边出现的次数,由于只有一个假的,则假硬币出现的次数必等于结果不是even的次数
最后遍历一边所有硬币,如果不能确定为真且某一边出现的次数等于结果不是even的次数,则它就是假的,同时,可以判断是轻的还是重的,因为数据保证3次称量必定可以找出来
代码: