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], 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

题目分析:进制转化
 1 #define _CRT_SECURE_NO_WARNINGS
 2 #include <climits>
 3 #include<iostream>
 4 #include<vector>
 5 #include<queue>
 6 #include<map>
 7 #include<set>
 8 #include<stack>
 9 #include<algorithm>
10 #include<string>
11 #include<cmath>
12 using namespace std;
13 long long N1[3];
14 long long N2[3];
15 long long Flag[3];
16 long long C[3] = { 10000000,17,29 };
17 int main()
18 {
19     scanf("%lld.%lld.%lld %lld.%lld.%lld", &N1[0], &N1[1], &N1[2], &N2[0], &N2[1], &N2[2]);
20     for (long long i = 2; i >=0; i--)
21     {
22         N1[i] += N2[i] + Flag[i];
23         if (N1[i] >=C[i]&&i!=0)
24         {
25             Flag[i - 1] = N1[i]/C[i];
26             N1[i] %= C[i];
27         }
28     }
29     printf("%lld.%lld.%lld", N1[0], N1[1], N1[2]);
30 }
View Code
12-23 13:59