1037 在霍格沃茨找零钱
Statement
Metadata
- 作者: CHEN, Yue
- 单位: 浙江大学
- 代码长度限制: 16 KB
- 时间限制: 400 ms
- 内存限制: 64 MB
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱
输入格式
输入在 1 行中分别给出 Galleon.Sickle.Knut
,其间用 1 个空格分隔。这里 Galleon
是 [0, Sickle
是 [0, 17) 区间内的整数,Knut
是 [0, 29) 区间内的整数。
输出格式
在一行中用与输入同样的格式输出哈利应该被找的零钱。如果他没带够钱,那么输出的应该是负数。
输入样例 1
输出样例 1
输入样例 2
输出样例 2
Solution
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c, d, e, f, tot1 = 0, tot2 = 0, total;
scanf("%d.%d.%d %d.%d.%d", &a, &b, &c, &d, &e, &f);
tot1 = (a * 17 + b) * 29 + c;
tot2 = (d * 17 + e) * 29 + f;
if (tot1 < tot2) {
total = tot2 - tot1;
a = total / 493;
total %= 493;
b = total / 29;
c = total % 29;
printf("%d.%d.%d\n", a, b, c);
} else if (tot1 == tot2)
printf("0.0.0\n");
else {
total = tot1 - tot2;
a = total / 493;
total %= 493;
b = total / 29;
c = total % 29;
printf("-%d.%d.%d\n", a, b, c);
}
}
Last update: May 4, 2022