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

在这里插入图片描述

Notice:
1.不同进制的加减运算
2.swap()没写头文件,但我查资料发现swap()应该在 <string_view>头文件里
		http://www.cplusplus.com/reference/algorithm/
#include <iostream>
#include <cstdio>
using namespace std;

int main(){
    int g1,g2,g3,s1,s2,s3,k1,k2,k3;
    scanf("%d.%d.%d %d.%d.%d",&g1,&s1,&k1,&g2,&s2,&k2);//保证其为大减小
    if(g1 > g2 || (g1 == g2 && s1 > s2) || (g1 == g2 && s1 == s2 && k1 > k2)){
        swap(g1,g2);
        swap(s1,s2);
        swap(k1,k2);
        cout << "-";
    }
    
//     if(k2 < k1){
//         k3 = k2 + 29 - k1;
//         s2--;
//     }else{
//         k3 = k2 - k1;
//     }
//     if(s2 < s1){
//         s3 = s2 + 17 -s1;
//         g2--;
//     }else{
//         s3 = s2 -s1;
//     }
//     g3 = g2 - g1;
//     printf("%d.%d.%d",g3,s3,k3);
       //另一种写法 gsk
    
    k3 = k2 < k1 ? k2 - k1 + 29 : k2 - k1;
    s2 = k2 < k1 ? s2 - 1 : s2;
    s3 = s2 < s1 ? s2 - s1 + 17 : s2 - s1;
    g3 = s2 < s1 ? g2 - g1 -1 : g2 - g1; //g2 一定大于 g1;
    printf("%d.%d.%d",g3,s3,k3);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值