直到1971年十进制化,英国货币的基础是将英镑分为240便士。一先令为12便士,所以20先令等于一磅。最小的面额是一分钱的四分之一。硬币还有许多其他面额和昵称,如果您不习惯该系统,可能会造成很多困惑。
挑战
编写一个程序或函数,可以将(几乎)任何面额的旧英语货币转换为其他任何货币。为了使用户更轻松,您需要支持复数形式和昵称。
这些是您必须支持的面额及其同义词。为方便起见,它们在零食中的价值领先于每一行。
1: farthing, farthings
2: halfpence, halfpenny, halfpennies
4: penny, pennies, pence, copper, coppers
8: twopenny, twopennies, twopence, tuppence, half groat, half groats
12: threepence, threepenny, threepennies, threepenny bit, threepenny bits, thruppence, thrupenny, thrupennies, thrupenny bit, thrupenny bits
16: groat, groats
24: sixpence, sixpenny, sixpennies, sixpenny bit, sixpenny bits, tanner, tanners
48: shilling, shillings, bob
96: florin, florins, two bob bit, two bob bits
120: half crown, half crowns
240: crown, crowns
480: half sovereign, half sovereigns
504: half guinea, half guineas
960: pound, pounds, pounds sterling, sovereign, sovereigns, quid, quids
1008: guinea, guineas
(我不是英国人,此列表绝不权威,但足以应付挑战。)
通过stdin或function参数,您应该采用以下形式的字符串
[value to convert] [denomination 1] in [denomination 2]
并返回或打印
[value to convert] [denomination 1] is [converted value] [denomination 2]
其中[converted value]
是[value to convert]
面额1的单位转换为现金种类2。
该[value to convert]
和[converted value]
是正的浮动。在输出中,两者都应四舍五入或舍入到小数点后4位。如果需要,您可以假设[value to convert]
输入时总是有一个小数点和零(例如1.0
代替1
)。
命名1和2可以是上面列表中的任何两个术语。不必担心它们是否为复数,将所有面额和同义词都一样。您可以假设输入格式和面额始终有效。
例子
1 pounds in shilling
→ 1 pounds is 20 shilling
(1.0000 pounds is 20.0000 shilling
可以)
0.6 tuppence in tanner
→ 0.6 tuppence is 0.2 tanner
24 two bob bits in pounds sterling
→ 24 two bob bits is 2.4 pounds sterling
144 threepennies in guineas
→ 144 threepennies is 1.7143 guineas
计分
以字节为单位的最短代码获胜。