Scrivi un programma o una funzione che accetta un numero intero positivo. Stampa un elenco di tutti i numeri decimali distinti che possono essere scritti esattamente in N caratteri usando cifre ( 0123456789), punti decimali ( .) e segni negativi ( -).
Ad esempio, alcuni numeri che sarebbero nell'elenco uscita N = 4 sono 1337, 3.14, .999, -789, -2.7, e -.09.
I numeri devono essere scritti nel modo normale, ma nella forma più breve possibile . Questo significa:
Il punto decimale deve essere incluso solo se il numero non è un numero intero.
- ad es.
45.0e45.dovrebbe essere scritto come semplice45 -45.00dovrebbe essere scritto come-45
- ad es.
Non dovrebbero esserci zero iniziali a sinistra del punto decimale.
03e003dovrebbe essere scritto come3, ma30e va300bene così come sono0.3e00.3dovrebbe essere scritto come giusto.3-03dovrebbe essere scritto come-3-0.3dovrebbe essere scritto come-.3
Non ci dovrebbero essere zero finali alla destra del punto decimale
.50e.500dovrebbe essere scritto come.5900.090dovrebbe essere scritto come900.09
L'eccezione alle ultime due regole è lo stesso zero, che dovrebbe sempre essere scritto come semplice
0.I segni positivi (
+) non devono essere utilizzati poiché allungano inutilmente il numero.
Si noti inoltre che il segno negativo ( -) non deve essere utilizzato come segno di sottrazione. Dovrebbe apparire solo come primo carattere di numeri inferiori a zero.
Formattazione
L'ordine dell'elenco di output dei numeri non ha importanza. Potrebbe essere crescente, decrescente o completamente confuso. Importa solo che sono presenti tutti i numeri distinti che possono essere scritti in N caratteri.
L'elenco può essere formattato in modo ragionevole, usando spazi, newline, virgole o forse qualcos'altro tra i numeri, purché le cose siano coerenti. Le parentesi iniziali e finali (o simili) vanno bene, ma cose come le virgolette attorno ai numeri no. (cioè non mescolare visibilmente stringhe e ints / float nell'output.)
Ad esempio, quando N = 1, alcuni output validi sarebbero:
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 }
Ma questo non sarebbe valido:
[0, 1, 2, 3, 4, "5", "6", "7", "8", "9"]
Esempi
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
Gli elenchi sono in ordine crescente, ellissi in alcuni punti per comodità di lettura.
punteggio
Vince il codice più breve in byte. In caso di parità vince la risposta con il voto più alto
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".
-0essere un output valido?