题目

简单模拟加法运算
解法1
点击查看代码
#include <iostream>
#include <string>
using namespace std;
struct Money {
int galleon;
int sickle;
int knut;
};
Money parseMoney(const string &s) {
size_t dot1 = s.find('.');
size_t dot2 = s.find('.', dot1 + 1);
Money m;
m.galleon = stoi(s.substr(0, dot1));
m.sickle = stoi(s.substr(dot1 + 1, dot2 - dot1 - 1));
m.knut = stoi(s.substr(dot2 + 1));
return m;
}
Money addMoney(const Money &a, const Money &b) {
Money sum;
sum.knut = a.knut + b.knut;
sum.sickle = a.sickle + b.sickle + sum.knut / 29;
sum.knut %= 29;
sum.galleon = a.galleon + b.galleon + sum.sickle / 17;
sum.sickle %= 17;
return sum;
}
int main() {
string A, B;
cin >> A >> B;
Money moneyA = parseMoney(A);
Money moneyB = parseMoney(B);
Money sum = addMoney(moneyA, moneyB);
cout << sum.galleon << "." << sum.sickle << "." << sum.knut;
return 0;
}
浙公网安备 33010602011771号