PKU1013 Counterfeit Dollar
描述:12枚金币中有一枚是假币,除重量与真币不同外其它特征均相同,用一个天平每次称相同个数的金币,称三次既能确定假币。金币分别用A~L代表。
输入:第一行输入n,表示有n组测试实例,每组测试实例包括三行,每行三个字符串,分别指左边的金币,右边的金币,天平右侧是下降、上升、平衡。
输出:代表假金币的字母和假币比真币偏重还是偏轻。
思路:这道题开始的思路是模拟,用一个数组存金币的真假情况,模拟了老半天,写了一大堆for,但情况巨多,考虑不周,结果被杀了回来,然后在Discuss中淘得用枚举不错,窃喜,又开工,四五十分钟捣腾,代码由一大堆for摇身变成一大堆if else,狂晕,情况依然巨多,又不周,再杀回,无奈。。。。请教队友,队友提供几组数据,发现少考虑了如果假设的假币在两次称量中轻重矛盾的情况,终于a了,又得知蓝皮书上有原题,看其代码,思路清晰明了,居然连switch都用上了,实在经典,遂记下。顺便和自己比较一番差距还是蛮大的。
我的代码:
标程: