zoukankan      html  css  js  c++  java
  • PAT——1037. 在霍格沃茨找零钱

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

     1 package com.hone.basical;
     2 
     3 import java.util.Scanner;
     4 
     5 /**
     6  * 原题目:https://www.patest.cn/contests/pat-b-practise/1037
     7  * @author Xia 用.分割字符串需要利用转义字符split("\.")
     8  * 核心:理解为进制转化即可,类似于时分秒转化
     9  */
    10 public class basicalLevel1037HogwartsChange {
    11 
    12     public static void main(String[] args) {
    13         int g, sickle, k;
    14         Scanner s = new Scanner(System.in);
    15         String sMoney = s.nextLine();
    16         String[] smon = sMoney.split(" ");
    17         int[] p = new int[3];
    18         int[] a = new int[3];
    19         String[] ps = smon[0].split("\.");
    20         String[] as = smon[1].split("\.");
    21         for (int i = 0; i < ps.length; i++) {
    22             p[i] = Integer.parseInt(ps[i]);
    23             a[i] = Integer.parseInt(as[i]);
    24         }
    25 
    26         int allp = p[0] * 29 * 17 + p[1] * 29 + p[2];
    27         int alla = a[0] * 29 * 17 + a[1] * 29 + a[2];
    28         int left = alla - allp;
    29         if (left >= 0) {
    30             g = left / (29 * 17);
    31             sickle = (left - g * 17 * 29) / 29;
    32             k = left - g * 17 * 29 - sickle * 29;
    33             System.out.println(g + "." + sickle + "." + k);
    34         } else {
    35             left = 0 - left;
    36             g = left / (29 * 17);
    37             sickle = (left - g * 17 * 29) / 29;
    38             k = left - g * 17 * 29 - sickle * 29;
    39             System.out.println("-" + g + "." + sickle + "." + k);
    40         }
    41     }
    42 }



  • 相关阅读:
    Redis源码分析(二十一)--- anet网络通信的封装
    leetcode 总结part1
    leetcode String to Integer (atoi)
    leetcode 165. Compare Version Numbers
    leetcode 189. Rotate Array
    leetcode 168. Excel Sheet Column Title
    leetcode 155. Min Stack
    leetcode 228. Summary Ranges
    leetcode 204. Count Primes
    leetcode 6. ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/xiaxj/p/7991206.html
Copyright © 2011-2022 走看看