Leonardo da Pisano, também conhecido como Fibonacci, foi fundamental para trazer o sistema numérico hindu-árabe para a Europa. Antes disso, os matemáticos trabalhavam na base sessenta com algarismos romanos.
Por exemplo, a raiz quadrada de dois pode ser aproximada como: uma e vinte e quatro partes de sessenta e cinquenta e uma partes de três mil e seiscentos e escrita como: i xxiv li , com a escala determinada pelo contexto. Na época, o “nada” era conhecido ( ou seja, zero), mas não tinha representação padrão nesse sistema numérico.
Se Fibonacci tivesse ignorado esses dígitos decimais que encontrara durante suas viagens, ele certamente teria abordado as deficiências no sistema atual. Esse sistema aprimorado chamaremos de sexagesimais de Fibonacci .
Sua tarefa é escrever um programa, função ou snippet de código que use um número de ponto flutuante no formato ASCII ou binário e faça a saída em sessenta algarismos romanos base. A entrada pode ser arquivo, console, argumento de linha de comando ou função e a saída pode ser arquivo ou console, o que for mais fácil.
A saída pode ser maiúscula ou minúscula e deve incluir estas melhorias:
- use n ou N para indicar nulo, o que significa que um local não tem valor, ou seja , "zero" (um problema com o sistema)
- use e ou E para indicar et correspondente ao ponto sexagesimal (outro problema com o sistema)
- use um ponto do meio · ou um asterisco * para separar grupos de algarismos romanos (mais um problema com o sistema)
Suponha que a entrada será um ponto flutuante com mantissa não superior a lix · lix · lix · lix · lix . Frações menores que n · e · n · n · n · n · i podem ser ignoradas. Portanto, desde que a entrada tenha essas restrições, no máximo dez grupos de algarismos romanos com um e podem ser gerados.
Números menores que i deve ter um líder e n · para garantir o contexto é claro.
Alguns exemplos: input
→ output
0
→ n1
→ i60
→ i · n0.1
→ n · e · vi3600
→ i · n · n10.5
→ x · e · xxx16777215
→ i · xvii · xl · xx · xv3.1415926536
→ iii · e · viii · xxix · xliv · n · xlvii
A saída deve evitar n · inicial desnecessário na parte da mantissa, e isolado ou rastreio · n na parte fracionária da saída. Assim, por exemplo, n · · n n n · · i , i · E , e i · e · · n n n · · · n n são saídas incorrectos para uma entrada de 1
.
Diferenças de mais ou menos n · e · n · n · n · n · i na saída estão dentro das tolerâncias e são aceitáveis.
A entrada é qualquer ponto flutuante legal no idioma de sua escolha, portanto, pode incluir expoentes positivos ou negativos, desde que a entrada não fique fora do intervalo especificado acima.
E, finalmente, os números romanos embutidos são permitidos!