Входные данные:
Два целых числа: одно отрицательное, одно положительное.
Выход:
В первой строке выведите от низшего к высшему. Во второй строке мы удалили старшие и младшие числа и изменили знак все индивидуальные номера. В третьей строке мы снова удалили старшие и младшие числа и снова поменяли все индивидуальные номера. и т. д. (Пример ниже должен прояснить задачу.)
Важно: Кроме того, мы добавляем пробелы, чтобы все числа в столбце были выровнены (справа).
Минимальное выравнивание является основной частью этой задачи, это означает, что вы не можете просто сделать каждое число одинаковой ширины. Ширина столбца основана на наибольшей числовой ширине этого конкретного столбца (и последовательность со сменой знака должна дать числам некоторое разнообразие по ширине на столбец).
Например:
Input: -3,6
Output:
-3,-2,-1, 0, 1, 2, 3, 4,5,6 // sequence from lowest to highest
2, 1, 0,-1,-2,-3,-4,-5 // -3 and 6 removed; then all signs changed
-1, 0, 1, 2, 3, 4 // 2 and -5 removed; then all signs changed again
0,-1,-2,-3 // -1 and 4 removed; then all signs changed again
1, 2 // 0 and -3 removed; then all signs changed again
// only two numbers left, so we're done
Как вы можете видеть выше, пробелы добавляются к положительным числам, когда они совместно используют столбец с отрицательными числами для компенсации -
(то же самое относится к двузначным числам).
Правила соревнований:
- Ввод должен быть двумя целыми числами
- Вы можете предположить, что эти целые числа находятся в диапазоне
-99
-99
(включительно). - Первое целое число будет отрицательным, а другое будет положительным.
- Вы можете предположить, что эти целые числа находятся в диапазоне
- Вывод может быть в любом приемлемом формате, если ясно, что есть строки и правильно выровненные столбцы: Т.е. STDOUT; возвращение в виде строки с символами новой строки; возвращение в виде списка строк; и т. д. Ваш звонок.
- Вывод также должен содержать разделитель по вашему выбору (за исключением пробелов, табуляции, новых строк, цифр или
-
): Ie,
; и;
и|
; иX
; и т. д. все допустимые разделители. - Выходные строки не могут содержать начальный или конечный разделитель.
- Вывод может содержать ОДНУ завершающую новую строку, и любая строка может содержать любое количество конечных пробелов.
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - К вашему ответу применяются стандартные правила , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода.
- Также, пожалуйста, добавьте объяснение, если это необходимо.
Тестовые случаи:
Input: -3,6
Output:
-3,-2,-1, 0, 1, 2, 3, 4,5,6
2, 1, 0,-1,-2,-3,-4,-5
-1, 0, 1, 2, 3, 4
0,-1,-2,-3
1, 2
Input: -1,1
Output:
-1,0,1
0
Input: -2,8
Output:
-2,-1, 0, 1, 2, 3, 4, 5, 6,7,8
1, 0,-1,-2,-3,-4,-5,-6,-7
0, 1, 2, 3, 4, 5, 6
-1,-2,-3,-4,-5
2, 3, 4
-3
Input: -15,8
Output:
-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6,7,8
14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7
-13,-12,-11,-10, -9, -8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6
12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5
-11,-10, -9, -8, -7, -6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3
-9, -8, -7, -6, -5, -4,-3,-2,-1, 0, 1, 2
8, 7, 6, 5, 4, 3, 2, 1, 0,-1
-7, -6, -5, -4, -3, -2,-1, 0
6, 5, 4, 3, 2, 1
-5, -4, -3, -2
4, 3
Input: -3,15
Output:
-3,-2,-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15
2, 1, 0,-1,-2,-3,-4,-5, -6,-7, -8, -9,-10,-11,-12,-13,-14
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
0,-1,-2,-3,-4,-5,-6,-7, -8,-9,-10,-11,-12
1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11
-2,-3,-4,-5,-6,-7,-8,-9,-10
3, 4, 5, 6, 7, 8, 9
-4,-5,-6,-7,-8
5, 6, 7
-6
Input: -12,12
Output:
-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12
11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11
-10, -9, -8,-7,-6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10
9, 8, 7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7,-8,-9
-8, -7, -6,-5,-4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6, 7, 8
7, 6, 5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5,-6,-7
-6, -5, -4,-3,-2,-1, 0, 1, 2, 3, 4, 5, 6
5, 4, 3, 2, 1, 0,-1,-2,-3,-4,-5
-4, -3, -2,-1, 0, 1, 2, 3, 4
3, 2, 1, 0,-1,-2,-3
-2, -1, 0, 1, 2
1, 0, -1
0
-99
и максимально возможное положительное значение99
.Ответы:
Желе ,
252420 байтЭто диадическая ссылка, которая возвращает массив строк.
Попробуйте онлайн!
Как это устроено
источник
05AB1E , 59 байт
Еще раз я испорчен той же самой ошибкой, которую я написал исправление несколько месяцев назад, но никогда не выдвигал ...
Хотя игра в гольф все еще должна быть возможной.
Попробуйте онлайн!
источник
ŸÐ',ý,gÍ;µ¦¨(D',ý,¼
он не совсем соответствует спецификациям форматирования, посмотрите, можете ли вы его улучшить;)Ÿ[Ðg1‹#',ý,¦(¨
было бы достаточно в противном случае :)Java 8
483480486† 467 байт† Байты подняты из-за исправления ошибки.
Хорошо, это заняло ОЧЕНЬ больше времени (и байтов), чем я думал (в Java это ..). Это, безусловно, можно использовать еще немного, возможно, с использованием совершенно другого подхода вместо создания массива сетки NxN для заполнения, а затем «обрезки» нулей (с раздражающим краевым случаем для тестового случая
-1,1
, а также-12,12
) ,Попробуйте онлайн.
Объяснение:
источник
Javascript (ES6), 269 байт
Разъяснение:
источник
QBIC , 46 байт
Как это устроено:
К счастью, при печати числа QBasic автоматически добавляет необходимые отступы.
источник
q
значение по умолчанию начинается с 1? Все значения в QBIC начинаются с 1, или я что-то здесь упускаю? И чтоd
/ гдеd
обозначает стенд? Илиd
текущий номер в цикле и?
просто необходимый разделитель в коде цикла for (а?
не текущий номер, как я его изначально читал)?q
начинается с 1. Все строчные буквы являются числовыми переменными, и буквыq-z
инициализируются в1-10
. И несколько команд автоматически присваивают номера в порядке их нахождения в коде.d
действительно является итератором внутреннего цикла FOR. Для получения более подробной информации см. Также витрина - или этоPerl 6 , 146 байт
Попытайся
Создает последовательность строк
Expanded:
источник
PHP 7.1, 277 байт
Онлайн переводчик
источник
Консольное приложение C # 196 байт
источник
Javascript -
196185176 байтЯ не очень разбираюсь в некоторых новых технологиях JS, так что это, вероятно, гораздо лучше.
Просто создает хорошую устаревшую HTML-таблицу без ширины, определенной для ячеек, поэтому в первой строке по умолчанию указывается ширина каждой записи без оптимального расстояния. Он также (ab) использует «особенность» HTML, заключающуюся в том, что закрывающие теги не требуются, если сначала появляется новый открывающий тег.
источник
Python 2 - 208 байт
Попробуйте онлайн
Создает массив значений заполнения, а затем использует его для создания необходимых форматированных строк.
Объяснение:
источник
,
и;
и|
все приемлемые разделители. » В настоящее время используется пробел в качестве разделителя. Но основная трудность с шириной действительно была решена, так что у вас все отлично! Только это небольшое изменение, и тогда это должно быть сделано. :)%l[i], range
требуется?)