ACM OJ上的题目1013:Counterfeit Dollar

sssdd4252022-10-04 11:39:541条回答

ACM OJ上的题目1013:Counterfeit Dollar
SJ has a dozen Voyageur silver dollars.However,only eleven of the coins are true silver dollars; one coin is counterfeit .The counterfeit coin has a different weight from the other coins but Sally does not know if it is heavier or lighter than the real coins.
Happily,Sally has a friend who loans her a very accurate balance scale.The friend will permit Sally three weighings to find the counterfeit coin.For instance,if Sally weighs two coins against each other and the scales balance then she knows these two coins are true.Now if Sally weighs
one of the true coins against a third coin and the scales do not balance then Sally knows the third coin is counterfeit and she can tell whether it is light or heavy depending on whether the balance on which it is placed goes up or down,respectively.
By choosing her weighings carefully,Sally is able to ensure that she will find the counterfeit coin with exactly three weighings.
输入
The first line of input is an integer n (n > 0) specifying the number of cases to follow.Each case consists of three lines of input,one for each weighing.Sally has identified each of the coins with the letters A--L.Information on a weighing will be given by two strings of letters and then one of the words ``up'',``down'',or ``even''.The first string of letters will represent the coins on the left balance; the second string,the coins on the right balance.(Sally will always place the same number of coins on the right balance as on the left balance.) The word in the third position will tell whether the right side of the balance goes up,down,or remains even.
输出
For each case,the output will identify the counterfeit coin by its letter and tell whether it is heavy or light.The solution will always be uniquely determined.
样例输入
1
ABCD EFGH even
ABCI EFJK up
ABIJ EFGH even 样例输出
K is the counterfeit coin and it is light.
代码如下:
#include
#include
int main()
{
x05int n;
x05int t[12]={0};
x05char c[]="ABCDEFGHIJKL";
x05char left[5];
x05char right[5];
x05char commend[5];
x05while(scanf("%d",&n))
x05{
x05x05for(int k=0;k

已提交,审核后显示!提交回复

共1条回复
瘦指若离弦 共回答了17个问题 | 采纳率88.2%
#include
#include
int main()
{
int n;
int t[12]={0};
char c[]="ABCDEFGHIJKL";
char left[5];
char right[5];
char commend[5];
scanf("%d",&n);
while(n--)
{
memset(t,0,sizeof(t));
for(int k=0;k
1年前

相关推荐

C++代码 输出格式问题 (zjut acm oj上的题目)
C++代码 输出格式问题 (zjut acm oj上的题目)
我在做大数加这道题目,代码改了一个下午,我认为算法应该是没问题,但是格式有问题.先来看下题目吧:
大数加
Time Limit:1000MS Memory Limit:32768K
Description:
给定一些大数,请计算其和.
Input:
输入数据中含有一些数据组(数量≤100),每组数据由一个整数n(n≤100)领衔,后跟n个大整数(0≤大数,大数位数≤200),若n=0则表示输入结束.
Output:
输出每组数据所计算的大数和,每个结果单独占一行.
Sample Input:
5
123456789
6287999980
5645645654654
5
79
0
Sample Output:
5652057111507
Source:
qianneng
我每次输出结果的时候都会多一个空行.真心看不出来哪里有问题.
能看出来的麻烦帮下忙,指点一下;要是认为算法有问题也可以说一下.
附:我的代码
#include
#include
#include
using namespace std;
int main()
{
x05ifstream cin("Chris.txt");
x05string s;
x05for(int n;cin>>n;)
x05{
x05x05int i,j;
x05x05int res[201]={0};
x05x05int arr[101][201];
x05x05memset(arr,0,sizeof(int) * 101 * 201);
x05x05for(i=0;i>s;
x05x05x05if(s=="0")break;
x05x05x05for(j=0;j
火焰荧灵1年前1
爱阳光的小丸子 共回答了17个问题 | 采纳率100%
for (;cin >> n,n!=0;)
那个结束的0没有吃掉
实际上是0输出了一个回车