Minecraft 1.12 será lançado amanhã, então vamos comemorar!
Escreva um código que receba um número inteiro não negativo N que represente o número de itens de algo no Minecraft . Produza-o de uma maneira mais útil aos jogadores, fornecendo o número de baús, pilhas e itens N equivalentes. Use o formato
XcYsZi
Onde
X
é o número de baús que você pode preencher completamente com N itens,Y
é o número de pilhas que você pode preencher com os itens restantes depois de encher baús,Z
se o número de itens restantes após o preenchimento de baús e pilhas.
Observe que:
- 64 itens cabem em uma pilha. Ignoraremos os itens que empilham para 16 ou não empilham.
- 27 pilhas cabem em um baú. (Estes são baús simples, não duplos.)
Portanto, nunca faria sentido se Y
fosse superior a 26 ou se Z
fosse superior a 63.
Uma ressalva com o formato é que, se houver zero de alguma coisa, esse termo não será impresso.
Então, por exemplo, se
Y
fosse zeroX
eZ
diferente de zero, o formato seria semelhanteXcZi
.Da mesma forma, se
Y
eZ
fosse zero eX
diferente de zero, o formato seriaXc
.A exceção aqui é quando N é zero. Então
0i
é a saída em vez de uma sequência vazia.
Você pode assumir que todos os N itens são do mesmo tipo, portanto, todos empilháveis.
Você não pode produzir uma lista ou tupla de três números. Você deve fornecer uma sequência com a notação exata "csi", nessa ordem, sem espaços ou vírgulas.
Para referência, aqui está um baú completamente cheio de pilhas de itens:
Casos de teste
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
O código mais curto em bytes vence.
Respostas:
Geléia ,
2624 bytesUm programa completo, pegando o número e imprimindo o resultado.
Parece muito longo para mim ...
Experimente online! ou veja a suíte de testes .
Quão?
atualizando ...
fonte
Retina ,
494841 bytesExperimente online! Inclui todos os casos de teste, exceto o último, caso sobrecarregue o TIO. Editar: salvou 7 bytes graças a @MartinEnder. Explicação:
Converta o número de entrada para unário usando
i
s.64 itens preenchem uma pilha.
27 pilhas enchem um baú.
Converta quaisquer baús, pilhas ou itens restantes em decimal, mas deixando o tipo como sufixo.
Se a entrada for zero, faça o resultado
0i
.fonte
$.&
a duplicação assim: tio.run/##FYs9DsIwDIX3d46ASpGq2Ens5ARcAiEQYsjCQNmqnj21Lb9veD@/...i
vez de1
, mas simplesmente não conseguia ver essa simplificação, obrigado!C #,
8486 bytesObserve a subtração em linha, não percebeu que era possível, mas
i--
fazia sentido; por que nãoi-=10
Editar:
para caso de borda 0 e sugestão.
fonte
_-=_/1728*1728
para_%=1728
a golf alguns bytes.0
, o que deve resultar0i
e não está produzindo nada no momento. Adicionar um simplesmente_>0?...:"0i"
resolveria isso.>_>
no editadoPython 3 , 87 bytes
Experimente online!
fonte
/
em vez de//
) e usando em vez do operador crasestr(...)
05AB1E , 24 bytes
Experimente online!
Explicação
fonte
0
caso de entrada e por que isso também imprime uma nova linha à direita, enquanto outras entradas não?0
estojo0i
estará no topo da pilha (0s
e0c
estará embaixo dela) e será impresso.C, 85
87105110111112bytesExperimente aqui .
O código ainda funciona corretamente em números negativos. Agora você pode dever os blocos OP do servidor!
fonte
JavaScript (ES6),
7776 bytesCasos de teste
Mostrar snippet de código
fonte
Java 8, 86 bytes
Experimente aqui.
fonte
CJam , 31 bytes
Experimente online!
Explicação
fonte
JavaScript (ES6) 71 bytes
Snippet:
Mostrar snippet de código
fonte
Python 2 , 82 bytes
Eu converti o comentário de Gabor Fekete de cima em um exemplo de trabalho:
Experimente online!
fonte
Lote,
347 335 283 246 234 202 199 191189 bytesfonte
set/a
expressão, não é?if %c%==0 (set c=)else rem
este códigos me dá "(set
não se espera"Braingolf , 71 bytes
Experimente online!
Nem um pouco de golfe, mas funciona
fonte
Mathematica, 155 bytes
fonte
PHP , 84 bytes
Experimente online!
PHP , 93 bytes
Experimente online!
fonte
T-SQL,
139 134139 bytesA entrada é armazenada na coluna a da tabela preexistente t .
Quebras de linha para facilitar a leitura, não contadas no total de bytes. Testado no MS SQL Server 2012.
EDIT 1: Mudou múltiplos
REPLACE
paraIIF
salvar 5 bytes. FinalREPLACE
ainda necessário, porqueSTR
irrita almofadas com espaços para 10 caracteres.EDIT 2: Corrigido para seguir as regras usando o tipo de entrada aprovado para SQL, valores armazenados em uma tabela nomeada . Este custo bytes para o
FROM
, também requer emSELECT
vez dePRINT
. Recuperou 2 bytes descartando um parênteses desnecessário.fonte
PowerShell, 113 bytes
Isso atinge um monte de pontos de dor do PowerShell com muita precisão.
[math]::Floor
é necessário para isso, pois o PS faz o arredondamento de banqueiros por padrão.o PS Ternary também ocupa uma carga de bytes em comparação com outros idiomas, para fazer uma simples coalescência nula (
$a="This";$a?$a:"That"
ou"This"?:"That"
) que precisamos fazer(($a="This"),"That")[$a-ne$null]
então precisamos usar tudo isso duas vezes e também adicionar outro conjunto de colchetes em alguns lugares devido à ordem de operação padrão do PowerShell.
fonte
Python 2 , 77 bytes
Experimente online!
fonte
dc , 76 bytes
Experimente online!
fonte