Напишите программу или функцию, которая принимает положительное целое число N. Выведите список всех различных десятичных чисел, которые можно записать ровно в N символах, используя digits ( 0123456789), десятичные точки ( .) и отрицательные знаки ( -).
Например, некоторые номера , которые были бы в выходном списке N = 4 представляют собой 1337, 3.14, .999, -789, -2.7, и -.09.
Числа должны быть написаны обычным способом, но в максимально короткой форме . Это означает:
Десятичная точка должна быть включена, только если число не является целым числом.
- например,
45.0и45.должен быть написан как простой45 -45.00должно быть написано как-45
- например,
Не должно быть начальных нулей слева от десятичной точки.
03и003должно быть написано как3, но30и300в порядке, как они0.3и00.3должно быть написано просто.3-03должно быть написано как-3-0.3должно быть написано как-.3
Справа от десятичной запятой не должно быть конечных нулей
.50и.500должен быть написан как.5900.090должно быть написано как900.09
Исключением из двух последних правил является сам ноль, который всегда
0должен быть записан как простой .Положительные знаки (
+) не должны использоваться, поскольку они излишне удлиняют число.
Также обратите внимание, что знак минус ( -) не должен использоваться как знак вычитания. Это должно появиться только как первый символ чисел меньше нуля.
Форматирование
Порядок вывода списка чисел не имеет значения. Это может быть восходящий, нисходящий или полностью перепутанный. Имеет значение только то, что присутствуют все различные числа, которые могут быть записаны в N символов.
Список может быть отформатирован разумным способом, используя пробелы, символы новой строки, запятые или, возможно, что-то еще между числами, если все согласовано. Начальные и конечные скобки (или аналогичные) в порядке, но такие вещи, как кавычки вокруг чисел, - нет. (т.е. не путайте видимые строки и целые / плавающие числа в выводе.)
Например, когда N = 1, некоторые допустимые результаты будут:
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 }
Но это было бы неверно:
[0, 1, 2, 3, 4, "5", "6", "7", "8", "9"]
Примеры
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
Списки расположены в порядке возрастания, а в некоторых местах имеют эллипс для удобства чтения.
счет
Самый короткий код в байтах побеждает. В случае связей победит ответ с более высоким рейтингом
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быть действительный вывод?