Écrivez un programme ou une fonction qui accepte un entier positif N. Générez une liste de tous les nombres décimaux distincts qui peuvent être écrits avec exactement N caractères à l' aide des chiffres ( 0123456789
), des décimales ( .
) et des signes négatifs ( -
).
Par exemple, quelques chiffres qui seraient dans la liste de sortie N = 4 sont 1337
, 3.14
, .999
, -789
, -2.7
et -.09
.
Les chiffres doivent être écrits de la manière habituelle, mais sous une forme aussi courte que possible . Ça signifie:
Le point décimal ne doit être inclus que si le nombre n'est pas un entier.
- par exemple
45.0
et45.
doit être écrit en clair45
-45.00
devrait être écrit comme-45
- par exemple
Il ne doit pas y avoir de zéros non significatifs à gauche du séparateur décimal.
03
et003
devrait être écrit comme3
, mais30
et300
sont très bien comme ils sont0.3
et00.3
doit être écrit comme juste.3
-03
devrait être écrit comme-3
-0.3
devrait être écrit comme-.3
Il ne doit pas y avoir de zéros de fin à droite de la virgule décimale
.50
et.500
doit être écrit comme.5
900.090
devrait être écrit comme900.09
L'exception aux deux dernières règles est zéro lui-même, qui doit toujours être écrit en clair
0
.Les signes positifs (
+
) ne doivent pas être utilisés car ils allongent inutilement le nombre.
Notez également que le signe négatif ( -
) ne doit pas être utilisé comme signe de soustraction. Il ne doit apparaître que comme le premier caractère des nombres inférieurs à zéro.
Mise en page
L'ordre de la liste de sortie des numéros n'a pas d'importance. Elle peut être ascendante, descendante ou complètement mélangée. Il importe seulement que tous les nombres distincts pouvant être écrits en N caractères soient présents.
La liste peut être formatée de manière raisonnable, en utilisant des espaces, des sauts de ligne, des virgules ou peut-être quelque chose d'autre entre les nombres, tant que les choses sont cohérentes. Les crochets de début et de fin (ou similaire) sont corrects, mais pas les choses comme les guillemets autour des nombres. (c.-à-d. ne mélangez pas visiblement les chaînes et les entiers / flottants dans la sortie.)
Par exemple, lorsque N = 1, certaines sorties valides seraient:
0 1 2 3 4 5 6 7 8 9
[1, 2, 3, 4, 5, 6, 7, 9, 0]
ans = { 5 8 9 1 3 2 0 3 4 7 6 }
Mais cela serait invalide:
[0, 1, 2, 3, 4, "5", "6", "7", "8", "9"]
Exemples
N = 1 -> 0 1 2 3 4 5 6 7 8 9
N = 2 -> -9 -8 -7 -6 -5 -4 -3 -2 -1 .1 .2 .3 .4 .5 .6 .7 .8 .9 10 11 12 ... 97 98 99
N = 3 -> -99 -98 ... -11 -10 -.9 -.8 ... -.2 -.1 .01 .02 ... .98 .99 1.1 1.2 ... 1.9 2.1 2.2 ... 2.9 3.1 ...... 9.9 100 101 ... 998 999
Les listes sont en ordre croissant, ellipsées à certains endroits pour faciliter la lecture.
Notation
Le code le plus court en octets gagne. En cas d'égalité, la réponse la plus votée l'emporte
Also note that the negative sign (-) should not be used as a subtraction sign. It should only appear as the first character of numbers less than zero.
0
".
-0
être une sortie valide?