1037. 在霍格沃茨找零钱(20)
来源:互联网 发布:三维软件 编辑:程序博客网 时间:2024/06/11 10:52
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(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
#include <iostream>#include <stdio.h>using namespace std;struct Money{ int Galleon; int Sickle; int Knut;};int IsGreater(struct Money own , struct Money pay ){ int sum1 = (own.Galleon * 17 + own.Sickle) * 29 + own.Knut; int sum2 = (pay.Galleon * 17 + pay.Sickle) * 29 + pay.Knut; int flag = ( sum1 >= sum2)? 1 : 0; return flag;}void Swap(struct Money *own , struct Money *pay ){ own->Galleon = own->Galleon + pay->Galleon; pay->Galleon = own->Galleon - pay->Galleon; own->Galleon = own->Galleon - pay->Galleon; own->Sickle = own->Sickle + pay->Sickle; pay->Sickle = own->Sickle - pay->Sickle; own->Sickle = own->Sickle - pay->Sickle; own->Knut = own->Knut + pay->Knut; pay->Knut = own->Knut - pay->Knut; own->Knut = own->Knut - pay->Knut;}struct Money Return(struct Money own , struct Money pay){ struct Money get; if ( own.Knut >= pay.Knut){ get.Knut = own.Knut - pay.Knut; }else{ own.Sickle--; get.Knut = own.Knut + 29 - pay.Knut; } if ( own.Sickle >= pay.Sickle){ get.Sickle = own.Sickle - pay.Sickle; }else{ own.Galleon--; get.Sickle = own.Sickle + 17 - pay.Sickle; } get.Galleon = own.Galleon - pay.Galleon; return get;}int main(){ struct Money pay; struct Money own; struct Money get; scanf("%d.%d.%d %d.%d.%d",&pay.Galleon,&pay.Sickle,&pay.Knut,&own.Galleon,&own.Sickle,&own.Knut); get.Galleon = 0; get.Sickle = 0; get.Knut = 0; if (IsGreater(own, pay) == 0){ Swap(&own,&pay); get = Return(own,pay); get.Galleon = - get.Galleon; }else{ get = Return(own,pay); } cout<<get.Galleon<<"."<<get.Sickle<<"."<<get.Knut; return 0;}
1 0
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 【PAT】1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1037. 在霍格沃茨找零钱(20)
- 1036. 跟奥巴马一起编程(15)
- Python多线程编程
- FTP协议讲解
- 【笔试练习】美团笔试题(一)
- Android笔记->Executors应用学习
- 1037. 在霍格沃茨找零钱(20)
- 《招聘一个靠谱的iOS》面试题参考答案
- PLSQL Dynamic SQL one row result
- UVa 455 Periodic Strings 【字符串求周期】
- Python socket编程
- Leetcode 108. Convert Sorted Array to Binary Search Tree
- Java笔记->ExecutorService 的理解与使用
- 1038. 统计同成绩学生(20)
- 【cf 487C】【数论+构造】【根据前缀积取模构造序列】