(нет, не те )
Соревнование
Вам дадут два входа. Первый - это положительное целое число n > 0
, которое используется для вывода n x n
прямоугольного треугольника чисел 1, 2, 3, ... n
. Этот треугольник начинается в углу и увеличивается по горизонтали и вертикали на один, а по диагонали на два. Смотрите примеры ниже для пояснения. Оставьте один пробел между столбцами и выровняйте все числа по столбцам. (Это ведь ascii-art ).
Второй вход x
- один из четырех отдельных символов ASCII по вашему выбору, который определяет начальный угол треугольника (и, следовательно, ориентацию). Например, вы можете использовать 1,2,3,4
или a,b,c,d
или #,*,!,)
, и т. Д. Пожалуйста, укажите в своем ответе, как работает ориентация.
Для пояснения в этом задании я буду использовать, 1,2,3,4
что будет соответствовать 1
для левого верхнего, 2
для правого верхнего и так далее по часовой стрелке.
Примеры
Например, для n = 5
, x = 1
выведите следующее:
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
Для ввода n = 11
, x = 1
вывода следующее (обратите внимание на дополнительные места , так отдельные цифры по правому краю):
1 2 3 4 5 6 7 8 9 10 11
2 3 4 5 6 7 8 9 10 11
3 4 5 6 7 8 9 10 11
4 5 6 7 8 9 10 11
5 6 7 8 9 10 11
6 7 8 9 10 11
7 8 9 10 11
8 9 10 11
9 10 11
10 11
11
С входом n=6
и x=2
выходом:
6 5 4 3 2 1
6 5 4 3 2
6 5 4 3
6 5 4
6 5
6
С входом n = 3
и x = 4
выходом:
3
2 3
1 2 3
С вводом n = 1
и любым x
, выводом:
1
Правила
- Лидирующие / завершающие символы новой строки или другие пробелы являются необязательными, при условии, что числа выстраиваются соответствующим образом. (Например, конечный пробел для получения квадратного вывода приемлем).
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Выводится в консоль, сохраняется как изображение, возвращается как список строк и т. Д. Любой удобный и разрешенный формат .
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
Ответы:
Желе , 13 байт
Попробуйте онлайн!
Левый аргумент:
n
Правый аргумент:
x
(0
= верхний левый,1
= верхний правый,2
= нижний левый,3
= нижний правый)источник
MATL , 18 байт
Первый вход
n
. Второй входx
, который может быть:0
: верхний левый1
: Нижняя левая2
: внизу справа3
: в правом верхнем углу(Или это может быть любое другое целое число, которое интерпретируется по модулю 4).
Попробуйте это в MATL Online!
источник
APL (Dyalog) , 29 байт
Попробуйте онлайн!
Как?
¨⍳⍵
- для каждогоi
в диапазонеn
(⍳+⍵-⊢)
- производим ассортиментi
с векторизованным добавлениемn - i
↑⌽
- перевернуть и сплющить⌽∘⍉
- повернуть вправо⍣⍺⊢
-x
раз' '@(=∘0)
- удалить нулиисточник
JavaScript
130128154142138135133 байта* исправлены ошибки заполнения
источник
Python 2 ,
124120 байтПопробуйте онлайн! или попробуйте все тестовые случаи
(r+[n]+['']*i)[-n:]
добавит несколько пустых строк в список номеров и нарежет их до нужного размера,zip
с помощью[::1-x%4/2*2]
и[::1-x/3*2]
выполнит вращение, а%%%ds'%len(`n`)*n
также сгенерирует строку для разбивания (например' %3s %3s %3s'...
), которая будет использоваться для каждого числа + список пустых строкисточник
Mathematica, 89 байт
вот еще одно решение, которое работает в TIO
Mathematica, 122 байта
Попробуйте онлайн!
источник
Древесный уголь , 39 байт
Попробуйте онлайн! Примечание: конечный пробел. Ссылка на подробную версию кода. Второе значение - число вращений против часовой стрелки, поэтому 0 - это левый верхний угол, 1 нижний левый угол, 2 нижний правый угол, 3 верхний правый угол. Объяснение:
источник
Javascript (ES6),
241222214 байтМеньше гольфа
Обратите внимание на ориентацию.
Второй параметр представляет собой символ из {'0', '1', '2', '3'} и автоматически вводится в число с помощью
&
оператором . Если бит 0 (lsb) числа установлен, строки переворачиваются вертикально. Если бит 1 (nlsb) установлен, столбцы переворачиваются горизонтально. Другие десятичные цифры могут использоваться с предсказуемыми результатами.Конечные пробелы
Пустые записи в выходной строке были заменены пробелами, что означает, что строки имеют конечные пробелы в ориентациях «0» и «1».
источник
Луа, 250 байт
Принимает параметры [w] idth и [m] ode, используя 1,2,3,4 для режимов, как описано в примере.
источник
05AB1E (61 байт)
Попробуйте онлайн
источник