Вызов
Учитывая положительное целое число , повторить каждый из его цифр количество раз , соответствующее его положению в . Другими словами, каждая цифра должна повторяться раз (для каждого , 1-проиндексированного), создавая тем самым новый номер:1 ≤ k ≤ n N d k k
Затем запишите его как по горизонтали, так и по вертикали и заполните поля копиями цифры, которая соответствует большему индексу между индексом столбца и индексом строки пробела. Окончательный результат должен выглядеть следующим образом:
Спекуляции
Вы можете принять как целое число, строку, список цифр или список символов, представляющих цифры. Выводом может быть строка, разделенная новой строкой, список строк / целых чисел или список списков символов / цифр, но, если это возможно, включите также версию для симпатичной печати. Если вывод представляет собой строку, разделенную символом новой строки, также допустимо:
- иметь начальные / конечные пробелы, если внешний вид вывода не изменяется
- разделите столбцы, используя одинаковое количество пробелов или строки с постоянным (ненулевым) количеством новых строк
Вы можете получить ввод и предоставить вывод любым стандартным методом , при этом отметив, что эти лазейки по умолчанию запрещены. Это код-гольф , поэтому постарайтесь выполнить задачу за наименьшее количество байтов, которыми вы можете управлять на выбранном вами языке .
Контрольные примеры
65:
655
555
555
---------------
203:
200333
000333
000333
333333
333333
333333
--------------
233:
233333
333333
333333
333333
333333
333333
---------------
5202:
5220002222
2220002222
2220002222
0000002222
0000002222
0000002222
2222222222
2222222222
2222222222
2222222222
---------------
12345:
122333444455555
222333444455555
222333444455555
333333444455555
333333444455555
333333444455555
444444444455555
444444444455555
444444444455555
444444444455555
555555555555555
555555555555555
555555555555555
555555555555555
555555555555555
Ответы:
JavaScript (ES7), 70 байт
Принимает ввод в виде строки. Возвращает строку с завершающим переводом строки.
Попробуйте онлайн!
Как?
метод
Мы строим вывод за символом, проходя квадратную матрицу и преобразовывая каждую ячейку в индекс во входную строку.ях , у
Координаты к строковому индексу
Верхняя граница области чисел (с индексами 0) вдоль каждой оси задается A000096 : п т чUN Nт ч
u0=0,u1=2,u2=5,u3=9,u4=14,u5=20,…
Учитывая целое число , мы можем узнать, в какой области оно находится, решив:n = ⌊ x ⌋ + 1К n = ⌊ x ⌋ + 1
Ведущий к:
n=⌊ √
Для каждой ячейки мы определяем:(x,y)
Эти значения преобразуются в индексы во входную строку следующим образом: i x , yvx,y ix,y
Условия остановки
Мы знаем, что мы достигли:
правая граница матрицы, когда символ в не существует, и мы имеем х > уix,y x>y
нижняя граница матрицы, когда символ не существует, и мы имеемx≤y
источник
J ,
1615 байт-1 байт благодаря FrownyFrog!
Попробуйте онлайн!
Принимает
N
как строку.Пояснения к исходному решению:
Тестовая сессия с вводом
203
:источник
)
, ваш ответ APL такой же, как и у меня.[:<:@
кажется, что это довольно дорого. Не могли бы вы вместо этого добавить что-то к списку, в который вы индексируете, для учета индексации 1 (например, добавьте 0, чтобы переместить каждый необходимый элемент 1 на одну позицию вправо)?{⍵[∘.⌈⍨(/⍨)⍳⍴⍵]}
?Haskell ,
605958 байтПопробуйте онлайн!
Бессмысленная версия (68 байт)
Попробуйте онлайн!
источник
Python 2 , 71 байт
Попробуйте онлайн!
Сначала генерируется первая строка
r
, затем выполняется итерацияr
для печати каждой строки.источник
R , 59 байт
Попробуйте онлайн!
источник
a
в качестве вектора символов, что позволяет вам установитьg=seq(a)
непосредственно.Желе , 7 байт
Попробуйте онлайн!
Уточненный вывод.
источник
05AB1E ,
141110 байтСохранено 1 байт благодаря Волшебному Осьминогу Урна / Аднан
Попробуйте онлайн!
объяснение
источник
APL (Dyalog Classic) , 16 байтов
Я отделяю это решение от поста своим J-ответом, как предложено Джо Кингом
Попробуйте онлайн!
источник
Python 2 , 74 байта
Попробуйте онлайн!
источник
Excel VBA, 95 байт
Функция анонимного непосредственного окна VBE, которая принимает входные данные
[A1]
и выводит их на консольРазоблаченный и прокомментированный
источник
MATL ,
1512 байтПопробуйте онлайн!
Я подозреваю, что это можно сократить, но это не так уж плохо ...
источник
Добавить ++ , 35 байт
Попробуйте онлайн!
Как это работает
Мы принимаем входные данные как список цифр, в то же время не позволяя нам а) приводить к цифрам
BD
, а также сохранять цифры, что заняло бы два байта.bLR
dBcB]
£X
¦Ω+
Далее мы продублируем этот массив и добавим в таблицу максимум
d‽b>
. Т.е. каждый элемент в массиве сопряжен с каждым другим элементом из второго массива, и по паре запускается команда максимального двоичного числа. Для примера ввода [6 5] это создает массив [1 2 2 2 2 2 2 2 2] , который является уплощенной версией мозаики, в качестве индексов для массива. К сожалению, добавить ++ использует 0-индексированные массивы, так что мы должны уменьшаем каждый элемент:1€Ω_
.A
€Ω:
AbLR¦+
T
$
T
источник
Древесный уголь , 17 байт
Попробуйте онлайн! Объяснение:
Цикл по индексам символов в обратном порядке.
Рассчитайте размер квадрата.
Нарисуйте квадрат, используя текущий персонаж.
источник
Холст , 12 байт
Попробуй это здесь!
источник
Python 2 ,
7673 байта-3 байта благодаря Линн .
Попробуйте онлайн!
источник
Древесный уголь , 14 байтов
Попробуйте онлайн!
Как?
... можно ли использовать этот метод в гольфе?
источник
×⊕κι
хотя дважды.ι
иκ
меняются на каждой итерации цикла Each.Stax , 12 байт
Запустите и отладьте его
Используя этот алгоритм .
Объяснение:
Stax ,
20191816 байтЗапустите и отладьте его
Объяснение:
источник
Атташе , 34 байта
Попробуйте онлайн!
объяснение
Работает аналогично ответу Галена Иванова .
источник
К (нгн / к) , 16 байт
Попробуйте онлайн!
источник
C (gcc) , 130 байтов
Кому нужна модная математика, когда ты можешь перебор?
Попробуйте онлайн!
источник
QBasic 1.1 , 127 байт
-4 благодаря DLosc .
Использует модифицированную версию алгоритма xnor Python 2 .
Ввод - это строка без кавычек. Выход-
\n
отделяется без лишних пробелов или\n
s.источник
QBasic , 111 байт
Анонимная функция, которая запрашивает ввод и вывод на консоль.
источник
Php 7.1 , 163 байта
Через CLI, предоставив номер в качестве аргумента:
Не так уж и гольф
Выход:
Метод:
В основном строят квадраты многомерного массива, состоящие из цифры, а затем накладывают их все (array_replace_recursive).
(Да, я знаю, что это очень долго.)
источник
Рубин , 80 байт
Попробуйте онлайн!
Аналогично ovs answer
источник
Japt, 12 байт
Принимает ввод в виде строки, выводит массив строк.
Попытайся
объяснение
источник
uBASIC , 120 байтов
Анонимная функция, которая принимает входной поток STDIN и выводит в STDOUT
Попробуйте онлайн!
источник
Visual Basic .NET (VBC) , 198 байт
Sub
Процедура , которая принимает входные данные из STDIN и выводит в STDOUT.Не могу заставить StrDup работать: /
Попробуйте онлайн!
источник
Луа,
149140 байтФункция, которая принимает список цепочек цифр и печатает результат в стандартный вывод. Это моя первая попытка кода в гольф (и выбор языка тоже не помогает), так что терпите меня :)
Попробуйте онлайн!
Ungolfed:
источник
Perl 5+
-nalF -M5.010
, 67 байтПопробуйте онлайн!
источник
Ябасич , 108 байт
Анонимная функция, которая принимает входные данные из STDIN и выводит их в STDOUT
Попробуйте онлайн!
источник