假硬币称重

news/2024/10/17 16:25:41/

解题思路:

因为题目的编辑中已经是知道了最终结果的,所以,可以倒过来思考,通过知晓的结果来判断相对应的过程是否符合对应的猜想,简单来说就是,自己称重硬币的过程,是不是就是出题者的意图,所以,需要建立三个数组来存放相对应的称重数据,最后用枚举的办法,依次比对结果是不是符合,最终得出硬币的真假。

代码如下:

#include<iostream>
#include <cstring>
using namespace std;
char Left[3][7];
char Right[3][7];
char result[3][7];
bool IsFake(char c, bool light);
int main() {int t;cin >> t;while (t--) {for (int i = 0; i < 3; ++i) cin >> Left[i] >> Right[i] >> result[i];for (char c = 'A'; c <= 'L'; c++) {if (IsFake(c, true)) {cout << c << " is the counterfeit coin and it is light.\n";break;}else if (IsFake(c, false)) {cout << c << " is the counterfeit coin and it is heavy.\n";break;}}}return 0;
}bool IsFake(char c, bool light)
{for (int i = 0; i < 3; ++i) {char* pLeft, * pRight;if (light) {pLeft = Left[i];pRight = Right[i];}else {pLeft = Right[i];pRight = Left[i];}switch (result[i][0]) {case 'u':if (strchr(pRight, c) == NULL)return false;break;case 'e':if (strchr(pLeft, c) || strchr(pRight, c))return false;break;case 'd':if (strchr(pLeft, c) == NULL)return false;break;}}return true;
}

存在的难点:

我觉得最难的就是自己设计的函数在判断完硬币的真假之后,需要再进一步的对下一步的称重结果进行对比,每次存储的数据都要更新,最后经过对比后才得出结果。


http://www.ppmy.cn/news/533367.html

相关文章

点钞机语音怎么打开_弱弱问一下验钞机怎么开声音

A&#xff1a;阀门磁性锁是一种阀门磁性锁&#xff0c;阀盖、阀杆、阀盖帽和手柄组成。阀盖帽和阀杆上有连接装置&#xff0c;阀盖帽上设有钢销槽&#xff0c;底部放有磁铁&#xff0c;磁铁套于弹簧内&#xff0c;钢销置于弹簧之上&#xff0c;阀盖上设有凹槽&#xff0c;手柄为…

你知道怎样用Excel打印【条形码】吗?

Excel功能超出你的想象&#xff0c;不仅可以处理大量的数据、制作图表等等&#xff0c;其实在Excel中也可以轻松打印各种条形码&#xff0c;而且设置非常简单&#xff0c;下面我们来看看如何用Excel来打印【条形码】&#xff1f; **Step1&#xff1a;**在Excel选项中将【开发工…

浩瀚抄码器冻品进口肉类抄重工具怎么用抄码器?抄码器如何用?便携式抄码器牛羊肉手持抄码器

浩瀚抄码器冻品进口肉类抄重工具怎么用抄码器&#xff1f;抄码器如何用&#xff1f;便携式抄码器牛羊肉手持抄码器进口冻肉扫码抄码器PDA哪个好&#xff1f;如何选择进口牛羊肉抄码器&#xff1f; 当前对于进出口牛羊肉的出入库管理&#xff0c;市面上仍保留人工目测、手写抄单…

假币的型号

100元 编号CE86、CH31、HB90、WJ1开头均为假币。 50元编号 FA开头的均为假币。 10元编号AB77、AB88、AB99开头的均为假币 M3W96假币

Paddle FastDeploy 执行Cmake 时错误处理方法

1.Paddle FastDeploy 在cmake 时的命令执行报错处理 命令是参考官网的&#xff0c;如下: git clone https://github.com/PaddlePaddle/FastDeploy.git cd FastDeploy mkdir build && cd build cmake .. -G "Visual Studio 16 2019" -A x64 \-DENABLE_ORT_BA…

中国银行正式发布回收硬币价格表

1957年 1分 1元 1960年 1分 80元 1962年 1分 30元 1965年 1分 350元 1966年 1分 180元 1967年 1分 350元 1968年 1分 88元 1969年 1分 150元 1977年 1分 320元 1981年 1分 5元 1988年 1分 300元 1989年 1分 150元 1990年 1分 180元 1995年 1分 0.5元 1955年 2分 15元 1957年 …

天平找假币问题

问题&#xff1a;给定12枚硬币&#xff0c;其中有一枚假币&#xff0c;其重量可能比真币重也可能轻&#xff0c;现只提供一个天平&#xff0c;问至少需要几次天平称重才能找到假币。 解决方案&#xff1a; 1)将12枚硬币平均分为3堆记为A,B,C&#xff0c;每堆有4枚硬币。将A,B…

真币与假币的重量问题

现有八枚硬币a b c d e f g h&#xff0c;已知其中一枚是假币&#xff0c;其重量不同于真币&#xff0c;但不知是较轻或较重&#xff0c;如何使用天平以最少的比较次数&#xff0c;决定出哪枚是假币&#xff0c;并得知假币比真币较轻或较重。   单独求假币的问题是不难的&…