1037 在霍格沃茨找零钱

简介: 1037 在霍格沃茨找零钱

1037 在霍格沃茨找零钱 (20 分)


如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(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>
const int GalleonToSickle = 17;
const int SickleToKunt = 29;
using namespace std;
int main()
{
  struct money {
    int Galleon;
    int Sickle;
    int Knut;
  };
  money P, A;
  bool changFlag = false;
  scanf("%d.%d.%d %d.%d.%d", &P.Galleon, &P.Sickle, &P.Knut,
    &A.Galleon, &A.Sickle, &A.Knut);
  money result;
  if (P.Galleon*GalleonToSickle*SickleToKunt + P.Sickle*SickleToKunt + P.Knut
    > A.Galleon*GalleonToSickle*SickleToKunt + A.Sickle*SickleToKunt + A.Knut)
  { 
    money T = A;
    A = P;
    P = T;
    changFlag = true;
  }
    
  if (A.Knut >= P.Knut)
    result.Knut = A.Knut - P.Knut;
  else {
    result.Knut = A.Knut+ SickleToKunt - P.Knut;
    A.Sickle--;
  }
  if (A.Sickle >= P.Sickle)
    result.Sickle = A.Sickle - P.Sickle;
  else {
    result.Sickle = A.Sickle + GalleonToSickle - P.Sickle;
    A.Galleon--;
  }
    result.Galleon = A.Galleon - P.Galleon;
    if(changFlag == false)
      printf("%d.%d.%d", result.Galleon, result.Sickle, result.Knut);
    else 
      printf("-%d.%d.%d", result.Galleon, result.Sickle, result.Knut);
 
  return 0;
}


相关文章
|
1月前
|
算法
【贪心算法】|860.柠檬水找零
【贪心算法】|860.柠檬水找零
|
1月前
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
29 0
|
7月前
|
算法 Java
代码随想录算法训练营第三十四天 | LeetCode 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球
代码随想录算法训练营第三十四天 | LeetCode 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球
45 0
|
8月前
|
算法
华为机试HJ76:尼科彻斯定理
华为机试HJ76:尼科彻斯定理
|
9月前
尼科彻斯定理
1.题目概述 2.题解 思路分析 具体实现
74 0
|
10月前
|
算法 C语言 C++
【数论】蚂蚁感冒、饮料换购、买不到的数目
长 100 厘米的细长直杆子上有 n只蚂蚁。
59 0
|
算法 Windows
算法简单题,吾辈重拳出击 - 第 N 个泰波那契数
听说过斐波那契数列,那你听说过泰波那契数列吗?
|
算法
贪心算法——小船过河
贪心算法——小船过河
340 0
贪心算法——小船过河
蓝桥杯 砝码称重
蓝桥杯 砝码称重
50 0