題目
鏈接:PAT (Basic Level) Practice 1037 在霍格沃茨找零錢
如果你是哈利·波特迷铃芦,你會知道魔法世界有它自己的貨幣系統(tǒng) —— 就如海格告訴哈利的:“十七個銀西可(Sickle)兌一個加隆(Galleon),二十九個納特(Knut)兌一個西可煤蚌,很容易端三∠侠瘢”現(xiàn)在,給定哈利應付的價錢 P 和他實付的錢 A郊闯,你的任務是寫一個程序來計算他應該被找的零錢且轨。
輸入格式:
輸入在 1 行中分別給出 P 和 A浮声,格式為
Galleon.Sickle.Knut
,其間用 1 個空格分隔旋奢。這里Galleon
是 [0, ] 區(qū)間內的整數(shù),Sickle
是 [0, 17) 區(qū)間內的整數(shù)然痊,Knut
是 [0, 29) 區(qū)間內的整數(shù)至朗。輸出格式:
在一行中用與輸入同樣的格式輸出哈利應該被找的零錢。如果他沒帶夠錢剧浸,那么輸出的應該是負數(shù)锹引。
輸入樣例 1:
10.16.27 14.1.28
輸出樣例 1:
3.2.1
輸入樣例 2:
14.1.28 10.16.27
輸出樣例 2:
-3.2.1
思路
先把錢數(shù)量轉換成最小單位Knut,得到找零后再轉換成三種單位唆香。
代碼
#include<stdio.h>
int main()
{
int P_Gal, P_Sic, P_Knu, A_Gal, A_Sic, A_Knu,C_Gal,C_Sic,C_Knu;
int P, A, C;
int flag = 0;
scanf("%d.%d.%d %d.%d.%d", &P_Gal, &P_Sic, &P_Knu, &A_Gal, &A_Sic, &A_Knu);
P = (P_Gal * 17 + P_Sic) * 29 + P_Knu;
A = (A_Gal * 17 + A_Sic) * 29 + A_Knu;
C = A - P;
if(C < 0){
flag = 1;
C = -C;
}
C_Knu = C % 29;
C = C / 29;
C_Sic = C % 17;
C_Gal = C / 17;
if(flag == 1){
printf("-");
}
printf("%d.%d.%d", C_Gal, C_Sic, C_Knu);
return 0;
}
---END---
其他相關題目
PAT-B 1036 跟奧巴馬一起編程(C語言)
PAT-B 1038 統(tǒng)計同成績學生(C語言)
PAT-B 1039 到底買不買(C語言)
PAT-B 1040 有幾個PAT(C語言)