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)).
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.
3.2.1 10.16.27
Sample Output:
14.1.28
代码如下:
以后写C的时候要注意,头文件应该要写成?<stdio.h>,不能写成<cstdio>,不然在PAT里面会报编译错误。找了很久错误才发现原来是头文件。。。
#include <stdio.h>
//[0,10^7] [0,17) [0,29)
int main()
{
int A[3],B[3],C[3];
scanf("%d.%d.%d %d.%d.%d", &A[0], &A[1], &A[2], &B[0], &B[1], &B[2]);
int carry = 0;//进位
C[2] = (A[2] + B[2]) % 29;
carry = (A[2] + B[2]) / 29;
C[1] = (A[1] + B[1]+carry) % 17;
carry = (A[1] + B[1] + carry) / 17;
C[0] = A[0] + B[0] + carry;//最高位无需考虑进位
printf("%d.%d.%d", C[0], C[1], C[2]);
return 0;
}
运行结果如下:
?
|