Ваша задача - заполнить ведро цифрами до заданного значения.
правила
Числа занимают крайнюю левую позицию, затем правую, затем левую и так далее.
После переполнения числа начинают собираться вокруг корзины аналогичным образом. Они занимают положение по диагонали.
Примеры должны прояснить, каков ожидаемый результат (некоторые правила упомянуты в примерах).
Для более чем 10 используйте самую правую цифру
Примеры:
The bucket:
| | or | |
| | | |
| | | |
| | | |
|------| |______|
input:1 (You can start from either 0 or 1)
output:
| | (There can be whitespace to the left even if there is no overflow
| | but the bucket must not be distorted.)
| |
|1 |
|------|
input:6
output:
| |
| |
| |
|135642|
|------|
input:8
output:
| |
| |
|7 8|
|135642|
|------|
input:23
output:
|913 20|
|357864|
|791208|
|135642|
|------|
input:27
output:
|913420|
|357864|
|791208|
|135642|
75|------|6
input:30
output:
|913420|
|357864|
|791208|
9|135642|0
75|------|68
input:40
output:
|913420|
|357864|
5|791208|6
939|135642|040
7175|------|6828
input:54 (Maximum input for start=1)
3|913420|4
13|357864|42
915|791208|620
7939|135642|0408
57175|------|68286
Это код-гольф, поэтому выигрывает самый короткий код.
|024531|
Ответы:
JavaScript (Node.js) ,
145143 байтаЖестко закодированный образец (см. Здесь для большего количества математики).
1-индексироваться.
Попробуйте онлайн!
Сохранено 2 байта благодаря @tsh
источник
/[^\s|-]/
->/[0-z]/
JavaScript (ES6),
144 ... 139137 байтМатематический подход (см. Здесь меньше математики).
0 индексированные.
Попробуйте онлайн!
Как?
Мы определяем:
Записывая полные значения, а не только единичные цифры, мы получаем следующую таблицу:
Эта таблица по существу симметрична по оси y, за исключением того, что значения слева являются четными, а значения справа являются их нечетными аналогами.
Мы определяем:
И для каждой ячейки мы добавляем:
комментарии
источник
Python 2 , 170 байт
Попробуйте онлайн!
источник
Java 10, 168 байт
Порт ответа @Arnauld на JavaScript (также с 1 индексом и выводом
-
снизу). Если вам нравится этот ответ, убедитесь, что вы также проголосовали за него!Попробуйте онлайн.
Объяснение:
источник
6502 машинный код (C64), 130 байт
При этом используется модифицированная версия «предварительно отформатированного» подхода некоторых других ответов. Он содержит полную строку блока, но цифры заменяются значениями, начиная с
0xC1
, в то время как любые символы для прямой печати находятся в диапазоне0x01
-0x7f
.В кодировке C64 нет
|
символа pipe ( ), поэтому он заменен похожим на PETSCII символом0x7d
.Онлайн демо
Использование:
SYS49152,[n]
(1-индексированный, например,SYS49152,54
для полного вывода)Прокомментировал разборку :
источник
Древесный уголь , 64 байта
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Введите число.
Нарисуйте половину ведра, а затем отразите его, чтобы завершить ведро.
Петля для каждой стороны ведра.
Отразите ведро так, чтобы мы могли рисовать в обоих направлениях в одном и том же направлении, и прыгните в положение первой цифры на той стороне ведра.
Цикл по количеству цифр на той стороне ведра.
Напечатайте следующую цифру и переместите курсор вверх и влево.
Отрегулируйте положение курсора, считывая смещения из двух сжатых строк
003003003005203004000500
(смещение по горизонтали) и11011011011510200300040000
(смещение по вертикали). Эти смещения учитывают вышеупомянутое движение курсора, что удобно означает, что они никогда не должны быть отрицательными.источник