Houve um desafio em converter um número para seu numeral em inglês , mas isso era muito simples. Dado um número de 0 a 100, sua tarefa é produzir o número correspondente em francês. O sistema numérico francês tem uma lógica mais complexa por trás do que o inglês:
Número Numeral --------------- 0 zéro (observe o sotaque) 1 un 2 deux 3 trois 4 quatre 5 cinq 6 seis 7 set 8 huit 9 neuf 10 dix 11 onze 12 douze 13 treize 14 quatorze 15 quinze 16 apreender 17 dix-sept (literalmente dez sete) 18 dix-huit 19 dix-neuf 20 vingt 21 vingt et un (sem hífens) 22 vingt-deux ... 30 trente ... 40 quarante ... 50 cinquante ... 60 soixante ... 70 soixante-dix (literalmente sessenta e dez) 71 Soixante e Onze ... 80 quatre-vingts (observe os; literalmente quatro anos vinte) 81 quatre-vingt-un (observe os hífens) ... 90 quatre-vingt-dix 91 quatre-vingt-onze ... 99 quatre-vingt-dix-neuf (4 * 20 + 10 + 9) 100 cêntimos
Para obter uma lista completa, siga http://quizlet.com/996950/ ( http://www.webcitation.org/6RNppaJx0 ).
Regras / explicações adicionais
- Sempre haverá um hífen entre as palavras EXCETO quando o número termina em 1.
- Quando o número termina em 1, a palavra et (significado e ) é adicionada antes do un ou onze . (31 = tres et un)
- No entanto, 81 e 91 são formatados da mesma forma que os outros números. (81 = quatre-vingt-un)
- Aos 60, o sistema alterna da base 10 para a base 20.
- Existem algumas pequenas discrepâncias na web sobre isso; consulte a lista vinculada acima para perguntas.
- As brechas proibidas por padrão não são permitidas.
- Não é permitido o uso de uma fonte externa, como um site, bem como de bibliotecas, APIs, funções ou similares que convertam números em números ou que traduzam para o francês.
- Isso é código-golfe , então a resposta com o menor número de bytes vence.
- Se disponível, vincule a um compilador online para facilitar o teste do seu código.
Entrada
- A entrada deve ser obtida do modo que seu idioma receber entrada. (STDIN, linha de comando, etc.)
- A entrada será uma única sequência, consistindo em um número inteiro entre 0 e 100, inclusive (zeros à esquerda opcionais).
- Você pode assumir que a entrada sempre será bem formada.
Saída
- O resultado será impresso no método mais conveniente para o seu idioma. (STDOUT, caixa de diálogo etc.)
- O case não importa na saída.
Exemplos
Teste seu código com relação a eles:
Saída de entrada ------------- 0 zéro 18 dix-huit 51 cinquante e um 80 quatre-vingts 91 quatre-vingt-onze 99 quatre-vingt-dix-neuf