Вызов:
Входные данные: положительное целое число
Выход:
Создайте список в диапазоне и объедините его вместе в строку (т. Е. N = 13 будет строкой ).12345678910111213
Теперь мы выводим треугольник, используя префиксы или суффиксы этой строки, в одной из следующих четырех ориентаций на основе входного целого числа:
- Если , выведите его в форме треугольника ◣
- Если , выведите его в форме треугольника ◤
- Если , выведите его в форме треугольника ◥
- Если , выведите его в форме треугольника ◢
Пример:
Вход:
Поскольку , форма будет ◤. Вот три возможных допустимых выхода:
12345678910111213 11111111111111111 12345678910111213
1234567891011121 2222222222222222 2345678910111213
123456789101112 333333333333333 345678910111213
12345678910111 44444444444444 45678910111213
1234567891011 5555555555555 5678910111213
123456789101 666666666666 678910111213
12345678910 77777777777 78910111213
1234567891 8888888888 8910111213
123456789 999999999 910111213
12345678 11111111 10111213
1234567 0000000 0111213
123456 111111 111213
12345 11111 11213
1234 1111 1213
123 222 213
12 11 13
1 3 3
Правила соревнований:
- Как видно из трех приведенных выше выходных данных, важна только правильная форма и использование всех цифр в правильном порядке . Кроме того, вы можете использовать префиксы или суффиксы; Неудачи / Отражает; диагональная печать; и т. д. и т. д. Допускается любой из шести возможных выходных данных для каждой фигуры (см. тестовый пример ниже, чтобы увидеть все действительные выходные данные на основе формы). Это позволяет использовать языки со встроенными вращениями, но те, у кого нет, также могут использовать альтернативный подход - использовать префиксы правильного размера сверху вниз или использовать префиксы для двух фигур, но суффиксы для двух других фигур. , Выбор большинства опций соответствующий выход для языка является частью процесса игры в гольф. :)
- Ввод гарантированно будет положительным целым числом. Для мы просто выводим .
1
- Допускается любое количество начальных / конечных новых строк / пробелов, если оно печатает правильный треугольник (без вертикальных или горизонтальных разделителей!) Где-нибудь на экране.
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - Стандартные правила применяются к вашему ответу с правилами ввода / вывода по умолчанию , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода (например, TIO ).
- Кроме того, добавление объяснения для вашего ответа настоятельно рекомендуется.
Тестовые случаи:
Вход:
Все возможные действительные выходы:
12345 54321 12345 54321 11111 55555
1234 5432 2345 4321 2222 4444
123 543 345 321 333 333
12 54 45 21 44 22
1 5 5 1 5 1
Вход:
Все возможные выходы:
123456 654321 123456 654321 111111 666666
12345 65432 23456 54321 22222 55555
1234 6543 3456 4321 3333 4444
123 654 456 321 444 333
12 65 56 21 55 22
1 6 6 1 6 1
Вход:
Все возможные выходы:
1 1 7 7 7 1
12 21 67 76 66 22
123 321 567 765 555 333
1234 4321 4567 7654 4444 4444
12345 54321 34567 76543 33333 55555
123456 654321 234567 765432 222222 666666
1234567 7654321 1234567 7654321 1111111 7777777
Вход:
Все возможные выходы:
1 1 8 8 8 1
12 21 78 87 77 22
123 321 678 876 666 333
1234 4321 5678 8765 5555 4444
12345 54321 45678 87654 44444 55555
123456 654321 345678 876543 333333 666666
1234567 7654321 2345678 8765432 2222222 7777777
12345678 87654321 12345678 87654321 11111111 88888888
Вход:
Только возможный выход:
1
Вход:
Все возможные выходы:
12 21 12 21 11 22
1 2 2 1 2 1
n==13
, самая верхняя строка может быть'33333333333333333'
(или, что то же самое,'31211101987654321'
)?mod 4
- строгие пары для этой задачи. Таким образом, вы не можете переключать четыре формы для четырехmod 4
случаев. Но, тем не менее, хороший вопрос.Ответы:
JavaScript (ES6),
9389 байтВозвращает матрицу символов.
Попробуйте онлайн!
Альтернативный рисунок (такого же размера):
Попробуйте онлайн!
комментарии
Сводка по форме
Ниже приведена сводка базовой формы (генерируемой вложеннымиnmod4
map
циклами) и окончательной формы (послеsort
) для каждого :источник
Python 2 , 94 байта
Попробуйте онлайн!
источник
Japt , 8 байт
Возвращает массив строк.
Попытайся
Сохранено 2 байта благодаря Кевину .
источник
ú
необходимо? Кажется, что вращение делает это неявно?z
.Холст , 8 байт
Попробуй это здесь!
источник
Perl 6 , 94 байта
Попробуйте онлайн!
Блок анонимного кода, который принимает число и возвращает список строк.
источник
Древесный уголь , 17 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Вход
n
.Создайте строку, объединяя числа
1
вn
.Заполните треугольник этой длины строкой.
Поверните треугольник против часовой стрелки на несколько
n*90
градусов.Отразите все, таким образом заканчивая треугольником, который повернут по часовой стрелке на
n*90
градусы.источник
C # (интерактивный компилятор Visual C #) , 128 байт
Попробуйте онлайн!
источник
Рубин ,
958279 байтовПопробуйте онлайн!
3 байта сохранены G B.
источник
R ,
152139137134 байтРазвернутый код:
Попробуйте онлайн!
источник
APL + WIN, 45 байт
Запрашивает целое число
Попробуйте онлайн! Предоставлено Dyalog Classic
источник
PowerShell , 108 байт
Попробуйте онлайн!
Немного грубо по краям, но работает. Соединяет цифры 1
n
в строку, затем перебирает от 0 до длины этой строки-1. Каждый раз он использует индексирование списка, чтобы переключиться на правильный метод пробелов и диапазон номеров, используемый для нарезки нашей новой строки.источник
Желе , 12 байт
Попробуйте онлайн!
источник
05AB1E (legacy) ,
141210 байтПо какой-то причине использование старой версии в качестве переписывания происходит крайне медленно.
Сохранено 2 байта благодаря Кевину Круйссену
Попробуйте онлайн!
объяснение
источник
LJη€S
наLSη
, посколькуS
неявно выравнивается.€S
что не получилось очень хорошо;)Stax , 10 байт
Запустите и отладьте его
источник
PowerShell ,
10510195 байт-4 байта спасибо Арно за трюк с сортировкой .
Попробуйте онлайн!
Менее гольф:
источник
R ,
175172154 байтПопробуйте онлайн!
Ужасный беспорядок в линии!
-3 байта путем изменения условия вращения
-17 байт благодаря предложению digEmAll и еще один байт после игры в гольф
источник
Wolfram Language (Mathematica) , 137 байт
Попробуйте онлайн!
источник
Python 2 , 116 байт
Попробуйте онлайн!
источник
Красный , 155 байт
Попробуйте онлайн!
источник
Perl 5, 117 байт
TIO
источник
PHP ,
116111109 байтПопробуйте онлайн!
Запустить с
php -nF
вводом изSTDIN
.$ echo 6|php -nF t.php
источник
Ява (JDK) ,
247209188186160148 байтПопробуйте онлайн!
-38 bytes
благодаря @KevinCruijssen-21 bytes
, позволивprintf
обрабатывать отступы.-2 bytes
делая подстроку перед заменой, что позволяет нам увеличиватьl
одно место, а не два.-26 bytes
- приprintf
выполнении дополнения строка, заполненная пробелами, больше не нужна, и строки цифр, очевидно, могут быть сгенерированы более коротким способом.-12 bytes
не возиться с однозначными цифрами вместо печати подстрок идеально обслуживаемой цепочки цифр, которую мы уже имеем.Ungolfed
источник
for(
можно убрать.new String(new char[w=s.length()]).replace('\0',' ')
можно" ".repeat(w=s.length())
использовать Java 11+. Вы можете удалить круглые скобки вокруг троичных проверок.1>(i-1)%4/2
может быть1>~-i%4/2
.w-1-l++
может бытьw+~l++
. И вам не нужно считать конечную точку с запятой в подсчете байтов. Который все вместе становится 209 байтов .