Minecraft 1.12 выйдет завтра, так что давайте праздновать!
Напишите код, который принимает неотрицательное целое число N, которое представляет количество элементов чего-либо в Minecraft . Выведите его более удобным для игроков способом, указав количество сундуков, стеков и предметов, эквивалентное N. Используйте формат
XcYsZi
где
X
количество сундуков, которые вы можете заполнить N предметами,Y
количество стеков, которое вы можете заполнить предметами, оставшимися после заполнения сундуков,Z
если количество предметов осталось после заполнения сундуков и стеков.
Обратите внимание, что:
- В стек помещается 64 предмета. (Мы будем игнорировать элементы, которые складываются до 16 или не складываются.)
- 27 стеков помещаются в сундук. (Это одиночные сундуки, а не двойные.)
Так что не имеет смысла, если Y
больше 26 или Z
больше 63.
Предостережение с форматом заключается в том, что если что-то есть ноль, этот термин не печатается.
Так, например, если бы
Y
было нольX
иZ
ненулевое, формат был бы похожXcZi
.Аналогично, если бы
Y
иZ
были нулевые иX
ненулевые, формат был быXc
.Исключением является случай, когда N равно нулю. Тогда
0i
вывод, а не пустая строка.
Можно предположить, что все N элементов одного типа, поэтому все они могут быть наращиваемыми.
Вы не можете вывести список или кортеж из трех чисел. Вы должны указать строку с точной нотацией "csi" в указанном порядке, без пробелов и запятых.
Для справки, вот сундук, полностью заполненный стопками предметов:
Testcases
in -> out
0 -> 0i
1 -> 1i
2 -> 2i
62 -> 62i
63 -> 63i
64 -> 1s
65 -> 1s1i
66 -> 1s2i
127 -> 1s63i
128 -> 2s
129 -> 2s1i
200 -> 3s8i
512 -> 8s
1337 -> 20s57i
1664 -> 26s
1727 -> 26s63i
1728 -> 1c
1729 -> 1c1i
1791 -> 1c63i
1792 -> 1c1s
1793 -> 1c1s1i
4096 -> 2c10s
5183 -> 2c26s63i
5184 -> 3c
5200 -> 3c16i
9999 -> 5c21s15i
385026 -> 222c22s2i
1000000000 -> 578703c19s
Самый короткий код в байтах побеждает.
Ответы:
Желе ,
2624 байтаПолная программа, принимающая число и печатающая результат.
Это кажется слишком длинным для меня ...
Попробуйте онлайн! или посмотрите набор тестов .
Как?
обновление ...
источник
Retina ,
494841 байтПопробуйте онлайн! Включает в себя все тестовые случаи, кроме последнего, в случае, если он перегружен TIO. Редактировать: 7 байтов сохранено благодаря @MartinEnder. Объяснение:
Преобразуйте входной номер в унарный, используя
i
s.64 предмета заполняют одну стопку.
27 стеков заполняют один сундук.
Преобразуйте любые сундуки, стеки или оставшиеся элементы в десятичные, но оставляя тип в качестве суффикса.
Если вход был нулевым, сделайте результат
0i
.источник
$.&
дублирования, как это: tio.run/##FYs9DsIwDIX3d46ASpGq2Ens5ARcAiEQYsjCQNmqnj21Lb9veD@/…i
вместо1
, но я просто не мог увидеть это упрощение, спасибо!C #,
8486 байтовОбратите внимание на встроенное вычитание, не понимая, что это возможно, но
i--
имело смысл, так почему бы и нетi-=10
Редактировать:
для 0 крайний случай и предложение.
источник
_-=_/1728*1728
чтобы_%=1728
в поле несколько байтов.0
, который должен закончиться0i
и в настоящее время ничего не выводит. Добавление просто_>0?...:"0i"
исправит это.>_>
отредактированныйPython 3 , 87 байт
Попробуйте онлайн!
источник
/
вместо//
) и использование оператора backtick вместоstr(...)
05AB1E , 24 байта
Попробуйте онлайн!
объяснение
источник
0
случае ввода, и почему это также печатает завершающий перевод строки, в то время как другие вводы не делают?0
чехол0i
окажется на вершине стопки (0s
и0c
будет под ней) и будет напечатан.С, 85
87105110111112байтовПопробуй это здесь .
Код даже правильно работает на отрицательных числах. Теперь вы можете задолжать OP серверные блоки!
источник
JavaScript (ES6),
7776 байтКонтрольные примеры
Показать фрагмент кода
источник
Java 8, 86 байт
Попробуй это здесь.
источник
CJam , 31 байт
Попробуйте онлайн!
объяснение
источник
JavaScript (ES6) 71 байт
Отрывок:
Показать фрагмент кода
источник
Python 2 , 82 байта
Я преобразовал комментарий Габора Фекете сверху в рабочий пример:
Попробуйте онлайн!
источник
Пакет,
347 335 283 246 234 202 199 191189 байтисточник
set/a
выражении, не так ли?if %c%==0 (set c=)else rem
эти коды дают мне «(set
не ожидается»Braingolf , 71 байт
Попробуйте онлайн!
Не совсем в гольфе, но это работает
источник
Mathematica, 155 байт
источник
PHP , 84 байта
Попробуйте онлайн!
PHP , 93 байта
Попробуйте онлайн!
источник
T-SQL,
139 134139 байтВходные данные хранятся в столбце a существующей таблицы t .
Разрывы строк для удобства чтения, не считаются в байтах. Протестировано на MS SQL Server 2012.
EDIT 1: Изменена мультипликатор
REPLACE
для ,IIF
чтобы сохранить 5 байт. ФиналREPLACE
еще нужен, потому чтоSTR
досадно колодки с пробелами до 10 символов.РЕДАКТИРОВАТЬ 2: Исправлено, чтобы следовать правилам с использованием утвержденного типа ввода для SQL, значения хранятся в именованной таблице . Эта стоимость байтов для
FROM
, также требуетSELECT
вместоPRINT
. Восстановил 2 байта, отбросив ненужные парены.источник
PowerShell, 113 байт
Это очень точно бьет по болевым точкам PowerShell.
[math]::Floor
для этого требуется, так как PS по умолчанию выполняет округление банкиров.PS Ternary также занимает загрузку байтов по сравнению с другими языками, чтобы сделать простую нулевую коалесценцию (
$a="This";$a?$a:"That"
или"This"?:"That"
) нам нужно сделать(($a="This"),"That")[$a-ne$null]
затем нам нужно использовать все это дважды, а также добавить в некоторых местах еще один набор скобок из-за порядка операций по умолчанию для powershell.
источник
Python 2 , 77 байт
Попробуйте онлайн!
источник
Округ Колумбия , 76 байт
Попробуйте онлайн!
источник