枚举 - 称硬币(POJ1013)

枚举 - 称硬币(POJ1013)

题目

有12枚硬币以A~L表示,其中有一枚假币,真假在重量上有区别,但谁众谁轻未知,现有一架天平测量三次的结果,要求输出假币及其轻重。数据保证可以判定出真假币。

输入样例

1
ABCD EFGH even
ABCI EFJK up
ABIJ EFGH even

输出样例

K is the counterfeit coin and it is light.

思路

可以模拟称重的过程,通过假设A~L分别为假币以及假设轻重对每次结果进行核验,若能满足条件则假设成立。

比如,假设某硬币是假币且为轻,那么当右侧天平翘起即up时,假币便在其中。这时只需要把我们遍历到的硬币放入其中寻找,若找得到则假设成立。

这里还是自己画图模拟一下情况比较方便理解。

代码

/* 枚举:称硬币(POJ1013)
   2021/1/3 @xycg0529
*/

#include <iostream>
#include <cstring>

using namespace std;

char lleft[3][7]; // 天平左侧砝码
char rright[3][7]; // 天平右侧砝码
char result[3][7]; // 天平右侧情况
bool isFake(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值