PAT1037在霍格沃茨找零钱(两种解法)
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(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在霍格沃茨找零钱(两种解法)相关推荐
- PAT1037 在霍格沃茨找零钱
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.& ...
- PAT 乙级1037 在霍格沃茨找零钱 (20分)
1037 在霍格沃茨找零钱 (20分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九 ...
- 牛客--追债之旅 两种解法
文章目录 第一种 第二种: 一共两种解法,所以即便你不会最短路,也可以做,甚至爆搜+剪枝的时间和空间消耗小于最短路做法. 第一种 题意: 小明现在要追讨一笔债务,已知有n座城市,每个城市都有编号,城市 ...
- 动态规划——钢筋切割问题的两种解法解析
动态规划问题--钢筋切割问题的两种解法解析@TOC 钢筋切割问题: 对于这个问题的两种解法 先来个官方点的解法说明: 我对两种解法的个人理解 第一种解法: 这种解法就是把先钢筋分成两部分,分别记为 i ...
- 1037. 在霍格沃茨找零钱(20) python篇
1037. 在霍格沃茨找零钱(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 如果你是哈利·波特迷,你会知 ...
- 1096:在霍格沃茨找零钱
1096: 在霍格沃茨找零钱 时间限制: 1 Sec 内存限制: 128 MB 提交: 0 解决: 0 [ 提交][ 状态][ 讨论版] 题目描述 如果你是哈利·波特迷,你会知道魔法世界有它自 ...
- usaco Ordered Fractions 顺序的分数(两种解法)
这题很好玩,这里有两种解法. 第一种我自己写的,先找到所有的既约真分数,然后写了一个cmp函数进行排序最后输出.我写的时候还在想这章不是搜索吗这跟搜索关系不大吧,难道是怕我们思维定式化故意出的题不是搜 ...
- 约瑟夫环问题的两种解法(详解)
约瑟夫环问题的两种解法(详解) 题目: Josephus有过的故事:39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓.于是决定了自杀方式,41个人排成一个圆 ...
- PAT 1037 在霍格沃茨找零钱(20)(代码+思路)
1037 在霍格沃茨找零钱(20)(20 分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon) ...
最新文章
- java中web service的几种实现方式(自用)
- 从Web2.0到Enterprise 2.0(三)Enterprise 2.0的三个方向
- c++带成员指针使用
- python输入任意多个成绩-Python 实现输入任意多个数,并计算其平均值的例子
- 【文字检测算法整理】
- 【数学基础】运筹学:拉格朗日乘子法和KKT条件(上)
- 【飞秋】在SPItemEventReceiver中使用BeforeProperties和AfterProperties
- linux 创建临时文件目录 mktemp 命令(创建随机名临时文件)
- linux init配置文件说明
- VUE3封装axios网络请求
- linux svn启动失败,linux svn authorization failed错误
- 【译】WebSocket协议第四章——连接握手(Opening Handshake)
- error C2871: #39;std#39; : does not exist or is not a namespace
- nyoj--77--开灯问题
- 硬件电子c语言笔试,电子类常见笔试试题
- Operation not applicable
- 104规约 scada
- 软件测试教务系统测试用例,教务管理系统测试用例.doc
- win7计算机怎么重置,win7系统的电脑如何重置 win7重置电脑的方法
- 卸载360天擎-奇安信