Leonardo da Pisano alias Fibonacci a joué un rôle déterminant dans l'introduction du système numérique hindou-arabe en Europe. Avant cela, les mathématiciens y travaillaient en base soixante avec des chiffres romains.
Par exemple, la racine carrée de deux peut être approximée comme suit: une et vingt-quatre parties de soixante et cinquante et une parties de trois mille six cents , et écrite comme: i xxiv li , avec la mise à l'échelle déterminée par le contexte. À l'époque, le «néant» était connu ( c.-à-d. Zéro), mais n'avait aucune représentation standard dans ce système numérique.
Si Fibonacci avait ignoré ces nouveaux chiffres décimaux qu'il avait rencontrés au cours de ses voyages, il aurait sûrement corrigé les lacunes du système actuel. Ce système amélioré, nous l'appellerons les sexagésimaux de Fibonacci .
Votre tâche consiste à écrire un programme, une fonction ou un extrait de code qui prend un nombre à virgule flottante au format ASCII ou binaire et qui sort en base soixante chiffres romains. L'entrée peut être un fichier, une console, une ligne de commande ou un argument de fonction et la sortie peut être un fichier ou une console, selon ce qui est le plus simple.
La sortie peut être en majuscules ou en minuscules et doit inclure les améliorations suivantes:
- utilisez n ou N pour indiquer une signification nulle, un lieu n'a aucune valeur, c'est-à - dire «zéro» (un problème avec le système)
- utilisez e ou E pour indiquer et correspondant au point sexagésimal (autre problème avec le système)
- utiliser un point central · ou un astérisque * pour séparer les groupes de chiffres romains (encore un autre problème avec le système)
Supposons que l'entrée sera en virgule flottante avec une mantisse non supérieure à lix · lix · lix · lix · lix . Les fractions inférieures à n · e · n · n · n · n · i peuvent être ignorées. Donc, à condition que l'entrée ait ces restrictions, au plus dix groupes de chiffres romains avec un e peuvent être sortis.
Les nombres inférieurs à i doivent être précédés d'un n · e pour garantir que le contexte est clair.
Quelques exemples: input
→ sortie
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
La sortie doit éviter les n · de tête inutiles dans la partie mantisse, les e isolés ou les traînants · n dans la partie fractionnaire de la sortie. Ainsi, par exemple, n · n · n · n · i , i · e et i · e · n · n · n · n · n sont des sorties incorrectes pour une entrée de 1
.
Les différences de plus ou moins n · e · n · n · n · n · i dans la sortie sont dans les tolérances et acceptables.
L'entrée est une virgule flottante légale dans la langue de votre choix, elle peut donc inclure des exposants positifs ou négatifs tant que l'entrée ne sort pas de la plage spécifiée ci-dessus.
Et enfin, les inserts en chiffres romains sont autorisés!