标签:lang std 易错点 scanf 思路 ems ble using har
题目链接 PAT 1058 A+B in Hogwarts (20)
已知哈利波特的世界中,货币单位规则,求两个金额的总和
每个单位各自相加,若有溢出累计到更大单位
计算总和化为最小单位,再进行单位拆分
总和取最小单位数字: 总和%最小单位进制数
已知一个总和数字,将该数字计算出对应不同单位的各单位数字
explain 解释
#include <iostream>
using namespace std;
/*
思路1 每个单位各自相加,若有溢出累计到更大单位
*/
int main(int argc,char * argv[]){
int g1,s1,k1,g2,s2,k2;
scanf("%d.%d.%d %d.%d.%d",&g1,&s1,&k1,&g2,&s2,&k2);
int k = (k1+k2)%29;
int s = (s1+s2+(k1+k2)/29)%17;
int g = g1+g2+(s1+s2+(k1+k2)/29)/17;
printf("%d.%d.%d",g,s,k);
return 0;
}
#include <iostream>
using namespace std;
/*
思路2 计算总和化为最小单位,再进行单位拆分
*/
int main(int argc,char * argv[]){
int g1,s1,k1,g2,s2,k2;
scanf("%d.%d.%d %d.%d.%d",&g1,&s1,&k1,&g2,&s2,&k2);
int sum = (g1+g2)*17*29+(s1+s2)*29+k1+k2;
int k = sum%29;
int s = sum/29%17;
int g = sum/(29*17);
printf("%d.%d.%d",g,s,k);
return 0;
}
PAT A1058 A+B in Hogwarts (20)[进制转换]
标签:lang std 易错点 scanf 思路 ems ble using har
原文地址:https://www.cnblogs.com/houzm/p/13337299.html