Hasta la decimalización en 1971 , el dinero británico se basaba en dividir la libra en 240 centavos. Un chelín fue de 12 centavos, por lo que 20 chelines hicieron una libra. La denominación más pequeña era el pedo en un cuarto de un centavo. Había muchas otras denominaciones y apodos para las monedas, lo que puede ser bastante confuso si no estás acostumbrado al sistema.
Reto
Escriba un programa o función que pueda convertir (casi) cualquier denominación de dinero antiguo en inglés a cualquier otra. Para que sea más fácil para el usuario, debe admitir plurales y apodos.
Estas son las denominaciones y sus términos sinónimos que debe admitir. Por conveniencia, su valor en farthings lidera cada línea.
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
(No soy británico, esta lista no es de ninguna manera autorizada, pero será suficiente para el desafío).
A través de stdin o argumento de función, debe tomar una cadena de la forma
[value to convert] [denomination 1] in [denomination 2]
y devolver o imprimir
[value to convert] [denomination 1] is [converted value] [denomination 2]
donde [converted value]
se [value to convert]
convierten las unidades de denominación 1 en la denominación 2.
Los [value to convert]
y [converted value]
son flotadores positivos. En la salida, ambos deben redondearse o truncarse a 4 decimales. Si lo desea, puede suponer que [value to convert]
siempre tiene un punto decimal y cero cuando ingresa (por ejemplo, en 1.0
lugar de 1
).
Las denominaciones 1 y 2 pueden ser dos términos de la lista anterior. No se preocupe si son plurales o no, trate todas las denominaciones y sinónimos de la misma manera. Puede suponer que el formato de entrada y las denominaciones son siempre válidas.
Ejemplos
1 pounds in shilling
→ 1 pounds is 20 shilling
( 1.0000 pounds is 20.0000 shilling
estaría bien)
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
Tanteo
El código más corto en bytes gana.
quid
is quid
. Lo más probable es que esto hubiera sido lo mismo con el dinero antiguo. Ejemplo: Five quid a pint! Cor blimey guvnor
. Excepción: quids-in