PTA(Basic Level)1037.在霍格沃茨找零钱
2024-10-07 00:24:47
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。
输入格式:
输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut
,其间用 1 个空格分隔。这里 Galleon
是 [0, 107] 区间内的整数,Sickle
是 [0, 17) 区间内的整数,Knut
是 [0, 29) 区间内的整数。
输出格式:
在一行中用与输入同样的格式输出哈利应该被找的零钱。如果他没带够钱,那么输出的应该是负数。
输入样例 1:
10.16.27 14.1.28
输出样例 1:
3.2.1
输入样例 2:
14.1.28 10.16.27
输出样例 2:
-3.2.1
思路
- 本质还是进制转换,就是要注意
0.0.0
的特判
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int g1,s1,k1;
int g2,s2,k2;
scanf("%d.%d.%d", &g1, &s1, &k1);
scanf("%d.%d.%d", &g2, &s2, &k2);
long long count1 = g1 * 17 * 29 + s1 * 29 + k1;
long long count2 = g2 * 17 * 29 + s2 * 29 + k2;
bool under_0 = true;
long long subtract = count2 - count1; //实付-应付
if(count1 - count2 < 0)
under_0 = false;
if(subtract < 0) subtract = -1 * subtract;
int g,s,k;
k = subtract % 29;
s = subtract / 29 % 17;
g = subtract / 29 /17;
if(!k && !s && !g) //就是0.0.0
k = k; //这一步没有什么意义
else if(under_0)
printf("-");
printf("%d.%d.%d\n", g, s, k);
return 0;
}
引用
https://pintia.cn/problem-sets/994805260223102976/problems/994805284923359232
最新文章
- 使用Monit监控本地进程
- 为你的pip更换一个国内的镜像源
- ElasticSearch入门系列(一)是什么以及安装和运行
- Microsoft Dynamics CRM 前瑞开发
- Jsonp 前后端交互操作
- Monkey的简单自动化
- 无法使用Django新建项目:&;#39;django-admin.py&;#39;不是内部或外部命令
- 从0开始LInux配置PHP开发环境
- BroadcastReceiver的两种注册方式之------动态注册
- mac 终端简单指令
- MyBatis从入门到放弃一:从SqlSession实现增删改查
- java数据库编程之事务、视图、索引、备份、恢复
- 【总目录】——概率论与数理统计及Python实现
- box-sizing -- 盒模型
- .net使用Aspose.Words进行Word替换操作的实现代码
- 性能测试十五:liunx下搭建(tomcat+项目+jmete命令行)
- Android导入第三方静态库.a编译成动态库.so
- C/C++内存泄漏检测 —— memleax
- 可变,不可变类型和hash
- underscore.js源码研究(3)
热门文章
- php大文件传输断点续传源码
- angularJS <;input type=";file>; 图片的base64编码
- Ubuntu14.04升级cmake版本的方法
- Mathematica——绘制3D图形
- python函数(一)
- 查重复出现的字段 SQL
- [drf]访问文档出现错误&#39;AutoSchema&#39; object has no attribute &#39;get_link&#39;
- 查询出与jack互为好友的人名字
- openerp学习笔记 搜索视图(自己创建的、自己的、本部门的、本部门及下属部门的、今日的、日期从,日期至、多条件模糊搜索、or、and)
- 数据分析 - numpy 模块