• PAT-进制转换-A1058 A+B in Hogwarts (20分)


    题目描述:

      如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统一—就如海格告诉哈利的:“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 }
    View Code

    参考-《算法笔记》-胡凡

  • 相关阅读:
    HTML5 中的Nav元素详解
    Gevent中信号量的使用
    MemCache缓存multiget hole详解
    MemCache中的内存管理详解
    Php中的强制转换详解
    Python中类的特殊方法详解
    MemCache的LRU删除机制详解
    AngularJS事件绑定的使用详解
    Php数据类型之整型详解
    HTML基础知识
  • 原文地址:https://www.cnblogs.com/fangzhiyou/p/12405535.html
Copyright © 2020-2023  润新知