Napisz program lub funkcję, która przyjmuje dodatnią liczbę całkowitą N. Wydrukuj listę wszystkich wyraźnych liczb dziesiętnych, które można zapisać dokładnie w N znakach, używając cyfr ( 0123456789), miejsc dziesiętnych ( .) i znaków ujemnych ( -).
Na przykład, niektóre numery, które znajdować się na liście wyjściowej n = 4 to 1337, 3.14, .999, -789, -2.7, i -.09.
Liczby należy zapisywać w normalny sposób, ale w możliwie najkrótszej formie . To znaczy:
Kropkę dziesiętną należy podać tylko wtedy, gdy liczba nie jest liczbą całkowitą.
- np.
45.0i45.powinny być napisane jako proste45 -45.00należy zapisać jako-45
- np.
Po lewej stronie przecinka dziesiętnego nie powinno być żadnych zer wiodących.
03i003powinny być napisane jako3, ale30i300są w porządku, jakimi są0.3i00.3powinny być napisane jako sprawiedliwe.3-03należy zapisać jako-3-0.3należy zapisać jako-.3
Po prawej stronie przecinka dziesiętnego nie powinno być żadnych zer końcowych
.50i.500powinny być zapisane jako.5900.090należy zapisać jako900.09
Wyjątkiem od dwóch ostatnich reguł jest samo zero, które zawsze należy pisać jako zwykłe
0.Znaków dodatnich (
+) nie należy używać, ponieważ niepotrzebnie wydłużają liczbę.
Zauważ również, że znak ujemny ( -) nie powinien być używany jako znak odejmowania. Powinien pojawiać się tylko jako pierwszy znak liczb mniejszych od zera.
Formatowanie
Kolejność wyjściowej listy liczb nie ma znaczenia. Może to być rosnąco, malejąco lub całkowicie pomieszane. Ważne jest tylko to, że obecne są wszystkie różne liczby, które można zapisać w N znakach.
Listę można sformatować w rozsądny sposób, używając spacji, znaków nowej linii, przecinków lub czegoś innego między liczbami, o ile są spójne. Wiodące i końcowe nawiasy kwadratowe (lub podobne) są w porządku, ale rzeczy takie jak cudzysłowy wokół liczb nie są. (tzn. nie mieszaj widocznie ciągów znaków i liczb całkowitych / zmiennoprzecinkowych na wyjściu.)
Na przykład, gdy N = 1, niektóre prawidłowe dane wyjściowe to:
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 }
Ale byłoby to nieprawidłowe:
[0, 1, 2, 3, 4, "5", "6", "7", "8", "9"]
Przykłady
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
Listy są w porządku rosnącym, w niektórych miejscach są elipsowane dla wygody czytania.
Punktacja
Najkrótszy kod w bajtach wygrywa. W przypadku remisu wygrywa wyższa głosowana odpowiedź
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”.
-0być prawidłowe wyjście?