Até a decimalização em 1971 , o dinheiro britânico era baseado na divisão da libra em 240 centavos. Um xelim custava 12 centavos, então 20 xelins ganhavam uma libra. A menor denominação era a de um quarto de centavo. Havia muitas outras denominações e apelidos para moedas, o que pode ser bastante confuso se você não estiver acostumado ao sistema.
Desafio
Escreva um programa ou função que possa converter (quase) qualquer denominação do antigo dinheiro inglês em qualquer outro. Para tornar mais fácil para o usuário, você precisa suportar plurais e apelidos.
Essas são as denominações e seus termos sinônimos que você deve apoiar. Por conveniência, seu valor em peões leva cada linha.
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
(Eu não sou britânico, esta lista não é de modo algum autoritária, mas será suficiente para o desafio.)
Via stdin ou argumento de função, você deve usar uma string do formulário
[value to convert] [denomination 1] in [denomination 2]
e devolver ou imprimir
[value to convert] [denomination 1] is [converted value] [denomination 2]
onde [converted value]
é [value to convert]
unidades de denominação 1 convertido para denominação 2.
O [value to convert]
e [converted value]
são flutuadores positivos. Na saída, ambos devem ser arredondados ou truncados com 4 casas decimais. Se desejar, você pode assumir [value to convert]
sempre que tem um ponto decimal e zero ao inserir (por exemplo, em 1.0
vez de 1
).
As denominações 1 e 2 podem ser quaisquer dois termos da lista acima. Não se preocupe se são plurais ou não, trate todas as denominações e sinônimos da mesma forma. Você pode assumir que o formato e as denominações de entrada são sempre válidos.
Exemplos
1 pounds in shilling
→ 1 pounds is 20 shilling
(tudo 1.0000 pounds is 20.0000 shilling
bem)
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
Pontuação
O código mais curto em bytes vence.
quid
é quid
. Provavelmente isso teria sido o mesmo com o dinheiro antigo. Exemplo: Five quid a pint! Cor blimey guvnor
. Exceção: quids-in