Escriba un programa o función que tome un entero positivo N. Genere una lista de todos los números decimales distintos que pueden escribirse exactamente en N caracteres usando dígitos ( 0123456789), puntos decimales ( .) y signos negativos ( -).
Por ejemplo, algunos números que serían en la lista de salida N = 4 son 1337, 3.14, .999, -789, -2.7, y -.09.
Los números deben escribirse de la manera normal, pero de la forma más corta posible . Esto significa:
El punto decimal solo debe incluirse si el número no es un entero.
- por ejemplo,
45.0y45.debe escribirse como simple45 -45.00debe escribirse como-45
- por ejemplo,
No debería haber ceros a la izquierda del punto decimal.
03y003debe ser escrito como3, pero30y300están bien como están0.3y00.3debe escribirse como solo.3-03debe escribirse como-3-0.3debe escribirse como-.3
No debe haber ceros a la derecha del punto decimal
.50y.500debe escribirse como.5900.090debe escribirse como900.09
La excepción a las dos últimas reglas es cero en sí, que siempre debe escribirse como simple
0.Los signos positivos (
+) no deben usarse ya que alargan innecesariamente el número.
También tenga en cuenta que el signo negativo ( -) no debe usarse como un signo de resta. Solo debe aparecer como el primer carácter de números menores que cero.
Formateo
El orden de la lista de números de salida no importa. Podría ser ascendente, descendente o completamente mezclado. Solo importa que todos los números distintos que se pueden escribir en N caracteres estén presentes.
La lista puede formatearse de manera razonable, utilizando espacios, líneas nuevas, comas o quizás algo más entre los números, siempre que las cosas sean consistentes. Los corchetes iniciales y finales (o similares) están bien, pero no lo son las comillas alrededor de los números. (es decir, no mezcle cadenas e ints / flotantes en la salida).
Por ejemplo, cuando N = 1, algunas salidas válidas serían:
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 }
Pero esto sería inválido:
[0, 1, 2, 3, 4, "5", "6", "7", "8", "9"]
Ejemplos
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
Las listas están en orden ascendente, elipses en algunos lugares para facilitar la lectura.
Puntuación
El código más corto en bytes gana. En caso de empate, la respuesta más votada gana
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".
-0ser una salida válida?