PAT A1058 A+B in Hogwarts (20)[進位制轉換]
阿新 • • 發佈:2020-07-18
題目
題目連結 PAT 1058 A+B in Hogwarts (20)
已知哈利波特的世界中,貨幣單位規則,求兩個金額的總和
解題思路
思路1
每個單位各自相加,若有溢位累計到更大單位
思路2
計算總和化為最小單位,再進行單位拆分
易錯點
總和取最小單位數字: 總和%最小單位進位制數
知識點
已知一個總和數字,將該數字計算出對應不同單位的各單位數字
單詞語法
explain 解釋
Code
Code 01
#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; }
Code 02
#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; }