題目描述:
如果你是哈利·波特迷,你會知道魔法世界有它自己的貨幣系統 —— 就如海格告訴哈利的:「十七個銀西可(sickle)兌乙個加隆(galleon),二十九個納特(knut)兌乙個西可,很容易。」現在,給定哈利應付的價錢p和他實付的錢a,你的任務是寫乙個程式來計算他應該被找的零錢。
輸入格式:
輸入在1行中分別給出p和a,格式為「galleon.sickle.knut」,其間用1個空格分隔。這裡galleon是[0, 107]區間內的整數,sickle是[0, 17)區間內的整數,knut是[0, 29)區間內的整數。
輸出格式:
在一行中用與輸入同樣的格式輸出哈利應該被找的零錢。如果他沒帶夠錢,那麼輸出的應該是負數。
輸入樣例1:
10.16.27 14.1.28輸出樣例1:
3.2.1輸入樣例2:
14.1.28 10.16.27輸出樣例2:
-3.2.1思路:
將p和a全部轉化為knut之後進行運算,在對結果進行除基取餘求出所要答案;
**如下:
#include struct money p, a;
int main()
printf ("%d.%d.%d\n", ans / (29 * 17), ans % (29 * 17) / 29, ans % 29);
return 0;
}
再給出另一種思路:
p和a的加減從低位開始,不夠減時向前一位借位(需考慮前一位為0的情況)。
#include struct money p, a, change;
bool more(money a, money b)
void swap (money *a, money *b)
int main()
if (a.knut >= p.knut) change.knut = a.knut - p.knut;
else }
if (a.sickle >= p.sickle) change.sickle = a.sickle - p.sickle;
else
change.gelleon = a.gelleon - p.gelleon;
printf ("%d.%d.%d\n", change.gelleon, change.sickle, change.knut);
return 0;
}
B1037 在霍格沃茨找零錢 20分
如果你是哈利 波特迷,你會知道魔法世界有它自己的貨幣系統 就如海格告訴哈利的 十七個銀西可 sickle 兌乙個加隆 galleon 二十九個納特 knut 兌乙個西可,很容易。現在,給定哈利應付的價錢 p 和他實付的錢 a,你的任務是寫乙個程式來計算他應該被找的零錢。輸入格式 輸入在 1 行中分別...
B1037 在霍格沃茨找零錢 20分
如果你是哈利 波特迷,你會知道魔法世界有它自己的貨幣系統 就如海格告訴哈利的 十七個銀西可 sickle 兌乙個加隆 galleon 二十九個納特 knut 兌乙個西可,很容易。現在,給定哈利應付的價錢 p 和他實付的錢 a,你的任務是寫乙個程式來計算他應該被找的零錢。輸入格式 輸入在 1 行中分別...
演算法筆記 B1037 在霍格沃茨找零錢
1037 在霍格沃茨找零錢 20 分 如果你是哈利 波特迷,你會知道魔法世界有它自己的貨幣系統 就如海格告訴哈利的 十七個銀西可 sickle 兌乙個加隆 galleon 二十九個納特 knut 兌乙個西可,很容易。現在,給定哈利應付的價錢 p 和他實付的錢 a,你的任務是寫乙個程式來計算他應該被找...