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

题目链接在此

思路

从题干可得 1 Gallon = 17 Sickle = 17*29(=493) Knut。我们先把输入输出都转换成Knut,然后用res = A-P得到结果,这是一个以Knut为单位的结果,只需要将res转换成G.S.K的形式即可:Gallon = res/493, Sickle = (res%493)/29, Knut = res%29。

AC代码

#include<stdio.h>

int main(){

    int pg,ps,pk, ag,as,ak;
    int g,s,k;

    scanf("%d.%d.%d %d.%d.%d",&pg,&ps,&pk,&ag,&as,&ak);

    int P,A;
    //将P,A都转成Knut 
    P = pg*493 + ps*29 + pk;
    A = ag*493 + as*29 + ak;

    int res = A-P;

    if(res < 0){
        printf("-");
        res = -res;
    }

    g = res/493;
    res %= 493;
    s = res/29;
    k = res%29;

    printf("%d.%d.%d\n",g,s,k);

    return 0;
}

注意:
若res为负数,需要转换成正数,符号不带入后面的运算,只需要再输出的时候注意即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值