切換
舊版
前往
大廳
主題

ZeroJudge - e972: 1. 貨幣轉換 (Currency) 解題心得

Not In My Back Yard | 2020-04-28 00:49:22 | 巴幣 0 | 人氣 527

題目連結:


題目大意:
現在給定以下幣值匯率:
台幣 T,這是起始貨幣,所以匯率沒有什麼意義。
美元 U ,30.9 台幣換 1 美元。
日元 J ,0.28 台幣換 1 日元。
歐元 E ,34.5 台幣換 1 歐元。

第一列輸入給定一正整數 n (10 ^ 4 ≦ n ≦ 10 ^ 6),代表有 n 元的台幣。接著一列給定一個正整數 m (1 ≦ m ≦ 10 ^ 6)以及一個英文字母(只會是 T 、 U 、 J 或是 E),代表預計消費多少元的目標幣值(用英文字母表示)。

試問剩餘金額為多少,轉成目標幣值並四捨五入至小數第二位後輸出。如果餘額 < 0 ,則輸出「No Money」;如果餘額 < 0.05 ,則輸出「0.00」。


範例輸入:
範例輸入一:
50000
200 U

範例輸入二:
15000
800 E


範例輸出:
範例輸出一:
U 1418.12

範例輸出二:
No Money


解題思維:
就是單純地將 n 乘以該幣值對台幣的匯率減去 m 即可。但是因為得出的結果為浮點數,因此會有浮點數誤差的問題。

可以設定一個足夠小(在這題至少要小於 0.001)但是不會太小(比如 10 ^ (-16) 之類的)的浮點數當作可容許誤差。當有一個浮點數加上誤差之後仍小於 0 ,就表示該數小於 0 ;同理,加上誤差之後仍小於 0.05 ,則視作原數小於 0.05 。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作