标签:closed 输入格式 pac 相加 art class pen 波特 hide
题目描述:
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统一—就如海格告诉哈利的:“17个银西可(Sickle)兑一个加隆(Galleon),29个纳特(Knut)兑一个西可,很容易”。你的任务是编写一个程序来计算A+B,其中A和B是按照“Galleon.Sickle.Knut”的标准格式给出的。
输入格式:
输入两个数A和B,以该格式:Galleon.Sickle.Knut
输出格式:
输出A+B的结果,以该格式:Galleon.Sickle.Knut
样例:
输入:3.2.1 10.16.27
输出:14.1.28
思路:
将两数全部转换为Knut,然后进行相加得到数res,然后依据题目要求进行输出。
注意点:
将数转换为Knut时,要防止溢出,故将res的类型设置为long。
代码:
1 #include<iostream> 2 using namespace std; 3 4 int main() 5 { 6 //设置long防止res溢出 7 long res, B_Galleon, B_Sickle, B_Knut, A_Galleon, A_Sickle, A_Knut; 8 9 //读入数据 10 scanf("%ld.%ld.%ld", &A_Galleon, &A_Sickle, &A_Knut); 11 scanf("%ld.%ld.%ld", &B_Galleon, &B_Sickle, &B_Knut); 12 13 //将钱全部转换位Knut,res为long类型防止溢出 14 res = (A_Galleon + B_Galleon) * 17 * 29 + (A_Sickle + B_Sickle) * 29 + (A_Knut + B_Knut); 15 16 //进行输出 17 printf("%ld.%ld.%ld", (res / 29) / 17, (res / 29) % 17, res % 29); 18 19 return 0; 20 }
参考-《算法笔记》-胡凡
PAT-进制转换-A1058 A+B in Hogwarts (20分)
标签:closed 输入格式 pac 相加 art class pen 波特 hide
原文地址:https://www.cnblogs.com/fangzhiyou/p/12405535.html