PAT(Advanced) 1058 A+B in Hogwarts C++实现

PAT(Advanced) 1058 A+B in Hogwarts C++实现

题目链接

1058 A+B in Hogwarts

题目大意

给定特殊格式的值AB,计算AB的和,以给定的特殊格式输出

算法思路

对给定字符串进行划分,转为整型,相加得到结果再转化为给定的格式并输出,注意进位即可。

AC代码

/*
author : eclipse
email  : [email protected]
time   : Thu Jan 28 17:47:20 2021
*/
#include <bits/stdc++.h>
using namespace std;

struct MagicForm {
    
    
    int galleon;
    int sickle;
    int knut;
    friend ostream& operator<<( ostream & os, const MagicForm & x) {
    
    
        os << x.galleon << "." << x.sickle << "." << x.knut;
        return os;
    }
};

MagicForm transfer(string number) {
    
    
    MagicForm magicForm;
    string temp = "";
    bool first = true;
    for (int i = 0; i < number.size(); i++) {
    
    
        if (number[i] == '.') {
    
    
            if (first) {
    
    
                magicForm.galleon = atoi(temp.c_str());
                first = false;
            } else {
    
    
                magicForm.sickle = atoi(temp.c_str());
            }
            temp.clear();
        } else {
    
    
            temp += number[i];
        }
    }
    magicForm.knut = atoi(temp.c_str());
    return magicForm;
}

MagicForm compute(MagicForm magicFormA, MagicForm magicFormB) {
    
    
    MagicForm magicForm;
    int carry = 0;

    int knut = magicFormA.knut + magicFormB.knut;
    carry = knut / 29;
    knut %= 29;
    magicForm.knut = knut;

    int sickle = magicFormA.sickle + magicFormB.sickle + carry;
    carry = sickle / 17;
    sickle %= 17;
    magicForm.sickle = sickle;

    magicForm.galleon = magicFormA.galleon + magicFormB.galleon + carry;
    return magicForm;
}

int main(int argc, char const *argv[]) {
    
    
    string A, B;
    cin >> A >> B;
    MagicForm magicFormA, magicFormB;

    magicFormA = transfer(A);
    magicFormB = transfer(B);

    MagicForm magicForm = compute(magicFormA, magicFormB);
    cout << magicForm;

    return 0;
}

样例输入

3.2.1 10.16.27

样例输出

14.1.28

鸣谢

PAT

最后

  • 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解!

猜你喜欢

转载自blog.csdn.net/qq_44486439/article/details/113355100