Напишіть програму або функцію, яка має додатне ціле число N. Виведіть список усіх різних десяткових чисел, які можна записати рівно N символів за допомогою цифр ( 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
слід писати як.5
900.090
слід писати як900.09
Виняток із двох останніх правил - це сам нуль, який завжди
0
повинен бути записаний як звичайний .Позитивні знаки (
+
) не слід використовувати, оскільки вони надмірно подовжують число.
Також зауважте, що негативний знак ( -
) не повинен використовуватися як знак віднімання. Він повинен відображатися лише як перший символ чисел, менших від нуля.
Форматування
Порядок вихідного списку чисел не має значення. Це може бути висхідний, низхідний або повністю змішаний. Важливо лише те, що всі чіткі числа, які можна записати в N символів, присутні.
Список можна відформатувати розумним способом, використовуючи пробіли, нові рядки, коми або, можливо, щось інше між номерами, доки речі послідовні. Провідні та кінцеві дужки (або подібні) добре, але такі речі, як цитати навколо цифр, не є. (тобто помітно не змішуйте рядки та ints / floats у висновку.)
Наприклад, коли 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
бути дійсний вихід?