这一题思路很明确,就是加上然后取余数
原题地址:https://pintia.cn/problem-sets/994805342720868352/problems/994805416519647232
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
#include <cmath>
#include<stack>
#include<queue>
//A1058 A+B in Hogwarts (20 分)
using namespace std;
const int maxn = 100010;
struct node
{
//Galleon.Sickle.Knut
int Galleon=0;
int Sickle=0;
int Knut=0;
};
node Nplus(node a, node b) {
node c;
c.Knut = a.Knut + b.Knut;
c.Sickle = a.Sickle + b.Sickle;
c.Galleon = a.Galleon + b.Galleon;
if (c.Knut >= 29) {
c.Knut = c.Knut % 29;
c.Sickle++;
}
if (c.Sickle >= 17) {
c.Sickle = c.Sickle % 17;
c.Galleon++;
}
if (c.Galleon > 10e7) {
c.Galleon = c.Galleon % int((1e7 + 1));
}
return c;
}
int main() {
node a, b;
scanf("%d.%d.%d", &a.Galleon, &a.Sickle, &a.Knut);
scanf("%d.%d.%d", &b.Galleon, &b.Sickle, &b.Knut);
node c = Nplus(a, b);
printf("%d.%d.%d", c.Galleon, c.Sickle, c.Knut);
return 0;
}