首页 > 其他分享 >1058. A+B in Hogwarts (20)

1058. A+B in Hogwarts (20)

时间:2022-11-25 14:33:23浏览次数:56  
标签:20 temp 1058 long int Getnum Hogwarts sa cc


1058. A+B in Hogwarts (20)


时间限制



50 ms



内存限制


65536 kB



代码长度限制



16000 B



判题程序



Standard



作者



CHEN, Yue


If you are a fan of Harry Potter, you would know the world of magic has its own currency system -- as Hagrid explained it to Harry, "Seventeen silver Sickles to a Galleon and twenty-nine Knuts to a Sickle, it's easy enough." Your job is to write a program to compute A+B where A and B are given in the standard form of "Galleon.Sickle.Knut" (Galleon is an integer in [0, 107], Sickle is an integer in [0, 17), and Knut is an integer in [0, 29)).

Input Specification:

Each input file contains one test case which occupies a line with A and B in the standard form, separated by one space.

Output Specification:

For each test case you should output the sum of A and B in one line, with the same format as the input.


Sample Input:

3.2.1 10.16.27


Sample Output:

14.1.28



当相加为零时要处理。简单的另一种方法见

评测结果

时间

结果

得分

题目

语言

用时(ms)

内存(kB)

用户

7月17日

20:05

答案正确

​20​

​1058​

​C++ (g++ 4.7.2)​

1

308

​datrilla​

测试点

测试点

结果

用时(ms)

内存(kB)

得分/满分

0

答案正确

1

180

10/10

1

答案正确

1

308

2/2

2

答案正确

1

308

2/2

3

答案正确

1

308

2/2

4

答案正确

1

256

2/2

5

答案正确

1

180

2/2

#include<iostream>
#include<string>
using namespace std;
long int Getnum(string s1,long int *l)
{
long int temp=0,e=1;
while((*l)>=0&&s1[*l]!='.')
{
temp=temp+(s1[*l]-'0')*e;
e*=10;
(*l)--;
}
(*l)--;
return temp;
}
string Getstr(long int nn)
{
string ss;
char cc;
if(nn!=0)
{
while(nn>0)
{
cc=nn%10+'0';
ss=cc+ss;
nn=nn/10;
}
}
else
{
cc='0';
ss=cc;
}
return ss;
}
int main()
{
string A,B,sa;
long int len1,len2,temp,c;
cin>>A>>B;
len1=A.length()-1;
len2=B.length()-1;
c=0;
temp=Getnum(A,&len1)+Getnum(B,&len2);
c=temp/29;
temp%=29;
sa="."+Getstr(temp);

temp=c+Getnum(A,&len1)+Getnum(B,&len2);
c=temp/17;
temp%=17;
sa="."+Getstr(temp)+sa;

temp=c+Getnum(A,&len1)+Getnum(B,&len2);
sa=Getstr(temp)+sa;
cout<<sa<<endl;
return 0;
}


标签:20,temp,1058,long,int,Getnum,Hogwarts,sa,cc
From: https://blog.51cto.com/datrilla/5886675

相关文章