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

如果你是哈利·波特迷,你会知道魔法世界有它⾃⼰的货币系统 —— 就如海格告诉哈利的:“⼗七个银
⻄可(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:
14.1.28 10.16.27
输出样例2:
-3.2.1

#include 
using namespace std;
int main(){
    int p1,p2,p3;
    int a1,a2,a3,sum=0;
    scanf("%d.%d.%d",&p1,&p2,&p3);
    scanf("%d.%d.%d",&a1,&a2,&a3);
    sum = (a1*29*17+a2*29+a3) - (p1*29*17+p2*29+p3);
    int n1,n2,n3;
    n1 = sum/(29*17);
    n2 = sum%493/29;
    n3 = sum%493%29;
    if (sum>=0){
            printf("%d.%d.%d",n1,n2,n3);    
    }
    else {
        sum=-sum;
        printf("%d.%d.%d",n1,-n2,-n3);  
    }
    
    return 0;
} 

你可能感兴趣的:(1037 在霍格沃茨找零钱 (20 分))