1058. A+B in Hogwarts (20)
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.27Sample Output:
14.1.28
言简意赅,不多说;
代码:
/************************************
This is a test program for anything
Enjoy IT!
************************************/
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <vector>
#include <list>
#include <set>
#include <fstream>
#include <string>
#include <cmath>
using namespace std;
int main()
{
/*ifstream cin;
cin.open("in.txt");
ofstream cout;
cout.open("out.txt");*/
//
// TO DO Whatever You WANT!
string s1, s2;
while (cin >> s1 >> s2)
{
int a[3] = { 0 }, b[3] = { 0 }, c[3] = { 0 };
int j = 0;
for (int i = 0; i < s1.length(); i++)
{
if (s1[i] == '.')
{
j++;
continue;
}
a[j] = a[j] * 10 + s1[i] - '0';
}
j = 0;
for (int i = 0; i < s2.length(); i++)
{
if (s2[i] == '.')
{
j++;
continue;
}
b[j] = b[j] * 10 + s2[i] - '0';
}
int t;
c[2] = (a[2] + b[2]) % 29;
t = (a[2] + b[2]) / 29;
c[1] = (a[1] + b[1] + t) % 17;
t = (a[1] + b[1] + t) / 17;
c[0] = (a[0] + b[0] + t);
cout << c[0] << "." << c[1] << "." << c[2] << endl;
}
//
// system("pause");
return 0;
}