如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(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

方法一:普通进制转换

#include <stdio.h>
int main()
{int G1,S1,K1,G2,S2,K2;int G,S,K;int E1,E2;int t;scanf("%d.%d.%d %d.%d.%d",&G1,&S1,&K1,&G2,&S2,&K2);E1=G1*17*29+S1*29+K1;E2=G2*17*29+S2*17+K2;if(E1>E2){t=G2;G2=G1;G1=t;t=S2;S2=S1;S1=t;t=K2;K2=K1;K1=t;}if(K2>=K1)K=K2-K1;else{if(S2==0)//如果银西可位数金额不够,向加隆位借1{G2=G2-1;S2=17;}K=K2+29-K1;S2=S2-1;}//完成纳特的换算;if(S2>=S1)S=S2-S1;else{S=S2+17-S1;G2=G2-1;}//完成银西可的换算G=G2-G1;if(E1>E2)printf("-%d.%d.%d",G,S,K);elseprintf("%d.%d.%d",G,S,K);return 0;
}

方法二 :都转化成纳特,再分别计算:

#include <stdio.h>
int main()
{int G1,S1,K1,G2,S2,K2;int G,S,K;int E1,E2,E;scanf("%d.%d.%d %d.%d.%d",&G1,&S1,&K1,&G2,&S2,&K2);E1=G1*17*29+S1*17+K1;E2=G2*17*29+S2*29+K2;E=abs(E2-E1);printf("%d",E);G=E/(17*29);S=(E%(17*29))/29;K=E-G*17*29-S*29;if(E2>=E1)printf("%d.%d.%d",G,S,K);else printf("-%d.%d.%d",G,S,K);return 0;
}

PAT1037在霍格沃茨找零钱(两种解法)相关推荐

  1. PAT1037 在霍格沃茨找零钱

    如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.& ...

  2. PAT 乙级1037 在霍格沃茨找零钱 (20分)

    1037 在霍格沃茨找零钱 (20分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九 ...

  3. 牛客--追债之旅 两种解法

    文章目录 第一种 第二种: 一共两种解法,所以即便你不会最短路,也可以做,甚至爆搜+剪枝的时间和空间消耗小于最短路做法. 第一种 题意: 小明现在要追讨一笔债务,已知有n座城市,每个城市都有编号,城市 ...

  4. 动态规划——钢筋切割问题的两种解法解析

    动态规划问题--钢筋切割问题的两种解法解析@TOC 钢筋切割问题: 对于这个问题的两种解法 先来个官方点的解法说明: 我对两种解法的个人理解 第一种解法: 这种解法就是把先钢筋分成两部分,分别记为 i ...

  5. 1037. 在霍格沃茨找零钱(20) python篇

    1037. 在霍格沃茨找零钱(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 如果你是哈利·波特迷,你会知 ...

  6. 1096:在霍格沃茨找零钱

    1096: 在霍格沃茨找零钱 时间限制: 1 Sec   内存限制: 128 MB 提交: 0   解决: 0 [ 提交][ 状态][ 讨论版] 题目描述 如果你是哈利·波特迷,你会知道魔法世界有它自 ...

  7. usaco Ordered Fractions 顺序的分数(两种解法)

    这题很好玩,这里有两种解法. 第一种我自己写的,先找到所有的既约真分数,然后写了一个cmp函数进行排序最后输出.我写的时候还在想这章不是搜索吗这跟搜索关系不大吧,难道是怕我们思维定式化故意出的题不是搜 ...

  8. 约瑟夫环问题的两种解法(详解)

    约瑟夫环问题的两种解法(详解) 题目: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个人排成一个圆 ...

  9. PAT 1037 在霍格沃茨找零钱(20)(代码+思路)

    1037 在霍格沃茨找零钱(20)(20 分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon) ...

最新文章

  1. java中web service的几种实现方式(自用)
  2. 从Web2.0到Enterprise 2.0(三)Enterprise 2.0的三个方向
  3. c++带成员指针使用
  4. python输入任意多个成绩-Python 实现输入任意多个数,并计算其平均值的例子
  5. 【文字检测算法整理】
  6. 【数学基础】运筹学:拉格朗日乘子法和KKT条件(上)
  7. 【飞秋】在SPItemEventReceiver中使用BeforeProperties和AfterProperties
  8. linux 创建临时文件目录 mktemp 命令(创建随机名临时文件)
  9. linux init配置文件说明
  10. VUE3封装axios网络请求
  11. linux svn启动失败,linux svn authorization failed错误
  12. 【译】WebSocket协议第四章——连接握手(Opening Handshake)
  13. error C2871: #39;std#39; : does not exist or is not a namespace
  14. nyoj--77--开灯问题
  15. 硬件电子c语言笔试,电子类常见笔试试题
  16. Operation not applicable
  17. 104规约 scada
  18. 软件测试教务系统测试用例,教务管理系统测试用例.doc
  19. win7计算机怎么重置,win7系统的电脑如何重置 win7重置电脑的方法
  20. 卸载360天擎-奇安信

热门文章

  1. A股-指标-boll线全面解析
  2. linux分区不格式化能挂栽吗,linux硬盘分区、格式化与挂载
  3. ios NSDate释义
  4. 【长春理工大学主办| IEEE独立出版 | 往届均完成检索】2023年第三届电子信息工程与计算机科学国际会议(EIECS 2023)
  5. Genymotion安装APK问题
  6. AI人脸检测/行为识别智能分析网关8大智慧应用场景分析
  7. Executors类创建四种常见线程池
  8. 你不知道的 facebook 盈利模式
  9. 数据结构和算法 堆排序 (图解堆调整)
  10. 水壶 - NOI Online 3