C/C++ 假币问题
题目描述
赛利有12枚银币。其中有11枚真币和1枚假币。假币看起来和真币没有区别,但是重量不同。但赛利不知道假币比真币轻还是重。于是他向朋友借了一架天平。朋友希望赛利称三次就能找出假币并且确定假币是轻是重。例如:如果赛利用天平称两枚硬币,发现天平平衡,说明两枚都是真的。如果赛利用一枚真币与另一枚银币比较,发现它比真币轻或重,说明它是假币。经过精心安排每次的称量,赛利保证在称三次后确定假币。
输入
第一行有一个数字n,表示有n组测试用例。对于每组测试用例: 输入有三行,每行表示一次称量的结果。赛利事先将银币标号为A-L。每次称量的结果用三个以空格隔开的字符串表示:天平左边放置的硬币 天平右边放置的硬币 平衡状态。其中平衡状态用``up'', ``down'', 或 ``even''表示, 分别为右端高、右端低和平衡。天平左右的硬币数总是相等的。
输出
输出哪一个标号的银币是假币,并说明它比真币轻还是重(heavy or light)。
样例输入
1 ABCD EFGH even ABCI EFJK up ABIJ EFGH even
样例输出
K is the counterfeit coin and it is light.
#include<iostream>
#include<string>
#include<set>
using namespace std;
int main()
{int n;cin>>n;while(n--){string s1,s2,s3;string s4,s5;int a[12]={0},i,j,k;for(j=0;j<3;j++){cin>>s1>>s2>>s3;if(s3=="even"){for(i=0;i<s1.size();i++)a[s1[i]-'A']=1;for(i=0;i<s2.size();i++)a[s2[i]-'A']=1;}else{s4=s1+s2;s5=s3;}}for(k=0;k<12;k++){if(a[k]==0){break;}}if(k<=12)if(s5=="up" && k>=4)printf("%c is the counterfeit coin and it is light.\n",k+'A');else if(s5=="up" && k<4)printf("%c is the counterfeit coin and it is heavy.\n",k+'A');else if(s5=="down" && k<4)printf("%c is the counterfeit coin and it is light.\n",k+'A');else if(s5=="down" && k>=4)printf("%c is the counterfeit coin and it is heavy.\n",k+'A');}
}
C/C++ 假币问题相关推荐
- 百练OJ:1013:Counterfeit Dollar(假币)
题目描述 Sally Jones has a dozen Voyageur silver dollars. However, only eleven of the coins are true sil ...
- 有趣的天平秤假币问题
问题描述: 有12枚硬币,其中有一枚是假币,但是不知道是重还是轻.现给定一架没有砝码的天枰,问至少需要多少次称量才能找到这枚硬币?如何证明给出的方案是最少次数? 思路分析: 我们首先想到的可能是将12 ...
- 减治法解决八枚硬币问题/假币问题(JAVA)----二分,三分,不知轻重的情况
八枚硬币问题 在八枚外观相同的硬币中,有一枚是假币,并且已知假币与真币的重量不同,但不知道假币与真币相比较轻还是较重.可以通过一架天平来任意比较两组硬币,设计一个高效的算法来检测出这枚假币. 我们先假 ...
- 【算法分析与设计】寻找假币问题
问题描述:给出27枚硬币,它们的各种外观完全相同,但有一枚硬币稍重一点,是假币,我们只有一杆秤,试找到一种便捷的方法找出假币. 简单直接的思路是:直接从头到尾扫描遍历一趟,找出最大的即可.算法复杂度是 ...
- Bailian2692 假币问题【暴力】
2692:假币问题 描述 赛利有12枚银币.其中有11枚真币和1枚假币.假币看起来和真币没有区别,但是重量不同.但赛利不知道假币比真币轻还是重.于是他向朋友借了一架天平.朋友希望赛利称三次就能找出假币 ...
- 称重问题 —— 哪个是假币?
1. 假币堆问题 有 10 堆 10 枚外观完全一致的硬币,其中有一堆全部都是假币,其他各堆中的硬币都是真币.所有的真币重量都是 10 g,假币或者比它重一克,或者轻一克,也即要么 11g,要么 9 ...
- OpenJ_Bailian - 2692 假币问题
我是传送门 赛利有12枚银币.其中有11枚真币和1枚假币.假币看起来和真币没有区别,但是重量不同.但赛利不知道假币比真币轻还是重.于是他向朋友借了一架天平.朋友希望赛利称三次就能找出假币并且确定假币是 ...
- bailian.openjudge 2692:假币问题
http://bailian.openjudge.cn/practice/2692 描述 赛利有12枚银币.其中有11枚真币和1枚假币.假币看起来和真币没有区别,但是重量不同.但赛利不知道假币比真币轻 ...
- (2013.05.05)N枚硬币找1枚假币
N枚硬币找1枚假币 ――Neicole (2013.05.05) 0. 问题描述 共有N枚硬币,一个天平,在这N枚硬币中有一枚假币,设法找出该枚假币. 1. 原理示例(减治法) 概要: 如上图所示,假 ...
- 完美立方生理周期假币熄灯阶乘汉诺塔N皇后
问题一:完美立方数 例题1:完美立方 形如a3= b3 + c3 + d3的等式被称为完美立方等式.例如 123= 63 + 83 + 103 编写一个程序,对任给的正整数N (N≤100),寻找所有 ...
最新文章
- mysql客户端指令_mysql command line client(mysql命令行客户端)
- 万能头文件#include<bits/stdc++.h>更新GCC10.2.0版本
- HDU 2079 选课时间(题目已修改,注意读题) 母函数 || 多重背包
- Apache httpd服务
- javascript+HTMl5游戏下载,开发一个都能月薪上万!舅服你
- uWSGI 和 nginx 的区别?
- 证券市场中银行的分类和作用
- css之文本溢出处理 | 背景图片处理
- C语言实现树,你一定看得懂
- 9-18 学习如何使用Python包的管理
- stm32f10x单片机进阶--spi使用
- 河南科技学院去年对口计算机分数线,河南科技学院录取分数线2021是多少分(附历年录取分数线)...
- c++ 中 try catch throw异常
- astgo-官方功能更新日志
- Diablo 大菠萝
- 100兆的网速在电脑上怎样测试软件,怎么测网速多少兆,360测网速
- 向日葵远程控制连接服务器黑屏原因
- 如何下载风云卫星数据?
- Pycharm this applicatation failed to start because it could not find or laod the qt plaform plugin
- 2023年深圳技能大赛——大鹏新区潮式风味菜烹饪职业技能竞赛
热门文章
- 矛与盾的较量(1)——花指令
- You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
- 关于相干信号的阵列处理
- 杰理AC692X 软开关机的实现
- UIFont字体大全
- 一汽轿车拟增资摩拜出行;甘薇出售资产代夫偿债;小米越南店正式开业丨价值早报
- 支持html邮件,HTML邮件兼容问题与解决方案
- 国产数据库岁末大盘点
- tif构建金字塔失败arcgis_arcgis构建金字塔
- ​特斯拉、Space X、Boring,一切都是为了“火星人”马斯克的回家梦?