Description du défi
Nous avons eu quelques défis concernant la séquence de recherche et de présentation . Rappel rapide:
- La séquence commence par
1, - Les termes suivants de cette séquence sont générés en énumérant chaque groupe de chiffres répétitifs dans le terme précédent,
Les premiers termes sont donc:
1 "one"
11 "one one" (we look at the previous term)
21 "two ones"
1211 "one two, one one"
111221 "one one, one two, two ones"
312211 "three ones, two twos, one one"
Faisons maintenant la même chose, mais utilisons des chiffres romains à la place. Nous commençons par Iet suivons les mêmes règles (nous appliquons la règle de comptage des chiffres aux caractères à la place, nous lisons donc IVXau one one, one five, one tenlieu de one four, one tenou d'une autre manière):
I "one"
II "one one"
III "two ones" = "II" + "I"
IIII "three ones" = "III" + "I"
IVI "four ones" = "IV" + "I"
IIIVII "one one, one five, one one"
IIIIIVIII "three ones, one five, two ones" = ("III" + "I") + ("I" + "V") + ("II" + "I")
Étant donné un entier positif N, soit:
- Sortez les premiers
Nchiffres de cette séquence (tout séparateur raisonnable est bien, ainsi que["I", "II", "III", ...] - Afficher
Nle terme de cette séquence (il peut être indexé 0).
N'oubliez pas de rendre votre code aussi court que possible, car il s'agit d'un défi de code-golf !
EDIT: Je crois qu'il y a toujours une façon standard / préférée d'exprimer des entiers en chiffres romains (comme 95-> XCVau lieu de VC). Quelques convertisseurs de chiffres romains que j'ai trouvés en ligne corroborent mon opinion. En cas de doute, utilisez un convertisseur en ligne , car répertorier tous les cas de bord possibles et les règles spécifiques d'écriture des chiffres romains n'est pas le but de ce défi.
EDIT2: @PeterTaylor et @GregMartin ont fait remarquer que des chiffres inférieurs ou égaux à 5apparaître dans la séquence, de sorte que vous n'avez pas à vous soucier de l'ambiguïté des chiffres romains (numéros 1- 8sont I, II, III, IV, V, VI, VII, et VIII)
4/ IV/ IIII? Ou 95/ XCV/ VC? Il n'y a peut-être pas toujours une façon unique d'exprimer un entier, mais je suis presque sûr qu'il y en a toujours une préférée (standard) - corrigez-moi si je me trompe.