题目链接:1037 在霍格沃茨找零钱 (20 point(s))

题目描述

如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。

输入格式

输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut,其间用 1 个空格分隔。这里 Galleon 是 [0, 10​7​​] 区间内的整数,Sickle 是 [0, 17) 区间内的整数,Knut 是 [0, 29) 区间内的整数。

输出格式

在一行中用与输入同样的格式输出哈利应该被找的零钱。如果他没带够钱,那么输出的应该是负数。

输入样例 1

10.16.27 14.1.28

输出样例 1

3.2.1

输入样例 2

10000000.16.28 10000000.16.27

输出样例 2

-0.0.1

Java代码

/**********************************************************************************
Submit Time Status Score Problem Compiler Run Time User
7/26/2019, 20:01:14 Accepted 20 1037 Java (openjdk) 74 ms wowpH
**********************************************************************************/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException; public class Main {
private static int[] P = new int[3]; // 应付的价钱P
private static int[] A = new int[3]; // 实付的钱A
private static int galleon, sickle, knut; // 应该被找零的钱
private static boolean enough = true; // 钱足够 private static void change(int[] P, int[] A) { // 找零
if (A[2] < P[2]) { // Knut币不够
A[1] -= 1; // 借一张Sickle币
A[2] += 29; // 兑换成29张Knut币
}
knut = A[2] - P[2]; // 找零的Knut币
if (A[1] < P[1]) { // Sickle币不够
A[0] -= 1; // 借一张Galleon币
A[1] += 17; // 兑换成17张Sickle币
}
sickle = A[1] - P[1]; // 找零的Sickle币
galleon = A[0] - P[0]; // 找零的Galleon币
} public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split("\\s|\\."); // 分割成6部分
for (int i = 0; i < 3; ++i) {
P[i] = Integer.parseInt(str[i]); // 应付的钱
}
for (int i = 3; i < 6; ++i) {
A[i - 3] = Integer.parseInt(str[i]); // 实付的钱
}
if (A[0] > P[0]) { // Galleon币足够
change(P, A);
} else if (A[0] < P[0]) { // Galleon不够
enough = false;
change(A, P);
} else if (A[1] > P[1]) { // Galleon币刚好,Sickle币足够
change(P, A);
} else if (A[1] < P[1]) { // Galleon币刚好,Sickle币不够
enough = false;
change(A, P);
} else if (A[2] > P[2]) { // Galleon币和Sickle币刚好,Knut币足够
change(P, A);
} else if (A[2] < P[2]) { // Galleon币和Sickle币刚好,Knut币不够
enough = false;
change(A, P);
}
if (false == enough) {
System.out.print("-"); // 钱不够,输出负号
}
System.out.println(galleon + "." + sickle + "." + knut);
}
}

PAT(B) 1037 在霍格沃茨找零钱(Java)的更多相关文章

  1. PAT 乙级 1037 在霍格沃茨找零钱(20)C++版

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

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

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

  3. PAT Basic 1037 在霍格沃茨找零钱 (20 分)

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

  4. pat(B) 1037. 在霍格沃茨找零钱(水题)

    代码: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> ...

  5. PAT (Basic Level) Practise (中文)-1037. 在霍格沃茨找零钱(20)

    PAT (Basic Level) Practise (中文)-1037. 在霍格沃茨找零钱(20) http://www.patest.cn/contests/pat-b-practise/1037 ...

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

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

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

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

  8. PAT——1037. 在霍格沃茨找零钱

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

  9. PAT 1037. 在霍格沃茨找零钱(20)

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

随机推荐

  1. RabbitMQ入门学习系列(二),单生产者消费者

    友情提示 我对我的文章负责,发现好多网上的文章 没有实践,都发出来的,让人走很多弯路,如果你在我的文章中遇到无法实现,或者无法走通的问题.可以直接在公众号<爱码农爱生活 >留言.必定会再次 ...

  2. Momentum Contrast for Unsupervised Visual Representation Learning (MoCo)

    Momentum Contrast for Unsupervised Visual Representation Learning 一.Methods Previously Proposed 1. E ...

  3. Java 什么是静态内部类

    #定义 Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类. 有static关键字修饰的内部类. 比如:Pattern类中的Node类. public class Outer { pr ...

  4. redis-cli 使用密码登录

    #./redis-cli 输入auth +空格+ 刚才设置的密码 成功

  5. yii2 下的redis常用命令集合

    <?php \Yii::$app->redis->set('user','aaa'); \Yii::$app->redis->set('user2','bbb'); \Y ...

  6. IDEA优化配置,提高启动和运行速度

    IDEA优化配置,提高启动和运行速度   参考链接:https://blog.csdn.net/riju4713/article/details/83217013,http://www.pc0359. ...

  7. 异常检测-基于孤立森林算法Isolation-based Anomaly Detection-2-实现

    参考https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.IsolationForest.html#sklearn.en ...

  8. 使用.whl文件安装torch和pytorch的方法

    当使用pip install torch torchvision命令下载感觉很慢时 可以先到下面的网页将.whl文件下载下来,然后再运行安装即可: torchvision也是 下载好了以后,运行: p ...

  9. python 抓取数据 存入 excel

    import requestsimport datetimefrom random import choicefrom time import timefrom openpyxl import loa ...

  10. Spring cloud微服务安全实战-6-6jwt改造之日志及错误处理(2)

    第一次请求失败了 打印出了403,第二次更新成功 现在只处理了403这种情况,还有一种情况就是401,就是当前用户需要做身份认证,你没有做身份认证. 401的处理 与403类似,也是在这里配置.Ent ...