PAT Basic 1037 在霍格沃茨找零钱 (20 分)
2024-09-04 11:38:14
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。
输入格式:
输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut
,其间用 1 个空格分隔。这里 Galleon
是 [0, 1] 区间内的整数,Sickle
是 [0, 17) 区间内的整数,Knut
是 [0, 29) 区间内的整数。
输出格式:
在一行中用与输入同样的格式输出哈利应该被找的零钱。如果他没带够钱,那么输出的应该是负数。
输入样例 1:
10.16.27 14.1.28
输出样例 1:
3.2.1
输入样例 2:
14.1.28 10.16.27
#include<iostream>
using namespace std;
struct money{
int g;
int s;
int k;
};
bool cmp(money a,money b){
if(a.g>b.g) return true;
else if(a.g<b.g) return false;
else {
if(a.s>b.s) return true;
else if(a.s<b.s) return false;
else{
if(a.k>=b.k) return true;
else return false;
}
}
}
int main() {
money p,a,tmp,res;
scanf("%d.%d.%d %d.%d.%d",&p.g,&p.s,&p.k,&a.g,&a.s,&a.k);
bool kSub=false,sSub=false;
if(!cmp(a,p)){
cout<<"-";
tmp=p;
p=a;
a=tmp;
}
res.k=a.k-p.k;
if(res.k<) {
kSub=true;
res.k+=;
}
res.s=a.s-p.s;
if(kSub) res.s--;
if(res.s<){
sSub=true;
res.s+=;
}
res.g=a.g-p.g;
if(sSub) res.g--;
cout<<res.g<<"."<<res.s<<"."<<res.k;
system("pause");
return ;
}
最新文章
- bootstarp-table表格中嵌套多个BUTON按钮实现
- ActionErrors和ActionError
- iframe框架中用js改变父级Url
- MQTT服务器搭建-mosquitto1.4.4安装指南
- Windows 系统下设置Nodejs NPM全局路径
- Use the PDFs below or the HTML contents to the left to install and configure P6 EPPM and its additional components.
- ArrayList和Iterator的用法
- 谷歌浏览器如何设置可以解决Ajax跨域问题?
- 杭电ACM2085--核反应堆
- Android Service 详解
- SSO单点登录的实现原理
- SAE Python使用经验 好文推荐
- django user模块改写
- 解读JavaScript原型链
- Set存储元素为啥是唯一的(以HashSet为例源码分析)
- 【正睿oi省选十连测】第一场
- win10开机自启动
- BASH 环境
- JAVA的高并发基础认知 二
- Luogu4899 IOI2018 Werewolf 主席树、Kruskal重构树
热门文章
- PTA编程总结二
- leetcode-easy-array-48. Rotate Image-NO
- Selenium学习之==>;Xpath使用方法
- [LeetCode] 272. Closest Binary Search Tree Value II 最近的二叉搜索树的值 II
- Scala的to和until
- HTML5 表单的补充+注意事项
- 用seborn的函数distplot(), jointplot(), pairplt()对数据的单变量分析绘图
- 【Qt开发】 V4L2_CAP_VIDEO_OVERLAY与V4L2_CAP_VIDEO_CAPTURE的区别
- 第八周课程总结&;实验报告六
- SpringBoot 单元测试junit test