Minecraft 1.12 se lanzará mañana, ¡así que celebremos!
Escriba código que tome un número entero no negativo N que represente la cantidad de elementos de algo en Minecraft . Exprímalo de una manera más útil para los jugadores, dando la cantidad de cofres, pilas y elementos a los que N equivale. Usa el formato
XcYsZi
dónde
X
es la cantidad de cofres que puedes llenar completamente con N elementos,Y
es la cantidad de pilas que puedes llenar con los elementos restantes después de llenar cofres,Z
si el número de elementos restantes después de llenar cofres y pilas.
Tenga en cuenta que:
- 64 artículos caben en una pila. (Ignoraremos los elementos que se acumulan a 16 o no se acumulan).
- 27 montones caben en un cofre. (Estos son cofres individuales, no cofres dobles).
Por lo tanto, nunca tendría sentido si Y
es más de 26 o si Z
es más de 63.
Una advertencia con el formato es que si hay cero de algo, ese término no se imprime.
Entonces, por ejemplo, si
Y
fueran ceroX
yZ
no cero, el formato se vería asíXcZi
.Del mismo modo, si
Y
yZ
fuera cero yX
distinto de cero, el formato seríaXc
.La excepción aquí es cuando N es cero. Entonces
0i
es la salida en lugar de una cadena vacía.
Puede suponer que todos los N elementos son del mismo tipo, por lo tanto, todos son apilables.
No puede generar una lista o tupla de tres números. Debe dar una cadena con la notación "csi" exacta, en ese orden, sin espacios ni comas.
Como referencia, aquí hay un cofre completamente lleno de pilas de artículos:
Casos de prueba
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
El código más corto en bytes gana.
Respuestas:
Jalea ,
2624 bytesUn programa completo que toma el número e imprime el resultado.
Me parece demasiado largo ...
Pruébalo en línea! o ver el conjunto de pruebas .
¿Cómo?
actualizando ...
fuente
Retina ,
494841 bytesPruébalo en línea!Incluye todos los casos de prueba, excepto el último, en caso de que se haya sobrecargado el TIO. Editar: Guardado 7 bytes gracias a @MartinEnder. Explicación:
Convierta el número de entrada a unario usando
i
s.64 artículos llenan una pila.
27 pilas llenan un cofre.
Convierte cualquier cofre, pila o elemento restante a decimal, pero deja el tipo como sufijo.
Si la entrada fue cero, haga el resultado
0i
.fuente
$.&
duplicación como esta: tio.run/##FYs9DsIwDIX3d46ASpGq2Ens5ARcAiEQYsjCQNmqnj21Lb9veD@/…i
lugar de1
, pero no pude ver esa simplificación, ¡gracias!C #,
8486 bytesObserve la resta en línea, no me di cuenta de que era posible, pero
i--
tenía sentido, ¿por qué noi-=10
Editar:
para 0 caso de borde y sugerencia.
fuente
_-=_/1728*1728
a_%=1728
al campo de unos pocos bytes.0
, que debería generar0i
y actualmente no genera nada. Agregar un simplemente_>0?...:"0i"
solucionaría esto.>_>
en el editadoPython 3 , 87 bytes
Pruébalo en línea!
fuente
/
lugar de//
) y usando un operador de retroceso en lugar destr(...)
05AB1E , 24 bytes
Pruébalo en línea!
Explicación
fuente
0
caso de entrada y por qué eso también imprime una nueva línea final mientras que otras entradas no?0
estuche0i
estará en la parte superior de la pila (0s
y0c
estará debajo) y se imprimirá.C, 85
87105110111112bytesPruébalo aquí .
El código incluso funciona correctamente en números negativos. ¡Ahora puede deber bloques de OP del servidor!
fuente
JavaScript (ES6),
7776 bytesCasos de prueba
Mostrar fragmento de código
fuente
Java 8, 86 bytes
Pruébalo aquí
fuente
CJam , 31 bytes
Pruébalo en línea!
Explicación
fuente
JavaScript (ES6) 71 bytes
Retazo:
Mostrar fragmento de código
fuente
Python 2 , 82 bytes
Convertí el comentario de Gabor Fekete de arriba en un ejemplo de trabajo:
Pruébalo en línea!
fuente
Lote,
347 335 283 246 234 202 199 191189 bytesfuente
set/a
expresión, ¿no?if %c%==0 (set c=)else rem
este los códigos me da "(set
no se espera"Braingolf , 71 bytes
Pruébalo en línea!
Para nada golfístico, pero funciona
fuente
Mathematica, 155 bytes
fuente
PHP , 84 bytes
Pruébalo en línea!
PHP , 93 bytes
Pruébalo en línea!
fuente
T-SQL,
139134139 bytesLa entrada se almacena en la columna a de la tabla t existente .
Saltos de línea para facilitar la lectura, no contados en bytes totales. Probado en MS SQL Server 2012.
EDITAR 1: Cambiado múltiple
REPLACE
aIIF
para guardar 5 bytes. FinalREPLACE
todavía necesario porqueSTR
molestamente rellena con espacios para 10 caracteres.EDIT 2: arreglado para seguir las reglas mediante el uso del tipo de entrada aprobado para SQL, valores almacenados en una tabla con nombre . Este costo de bytes para
FROM
, también requiere enSELECT
lugar dePRINT
. Se recuperaron 2 bytes al soltar un parens innecesario.fuente
PowerShell, 113 bytes
Esto golpea un montón de puntos débiles de PowerShell con mucha precisión.
[math]::Floor
es necesario para esto, ya que PS realiza el redondeo de los banqueros por defecto.el PS Ternary también ocupa una carga de bytes en comparación con otros idiomas, para hacer una coallescencia nula simple (
$a="This";$a?$a:"That"
o"This"?:"That"
) tenemos que hacer(($a="This"),"That")[$a-ne$null]
entonces necesitamos usar todo esto dos veces, y también agregar otro conjunto de corchetes en algunos lugares debido al orden de operación predeterminado de powershell.
fuente
Python 2 , 77 bytes
Pruébalo en línea!
fuente
cc , 76 bytes
Pruébalo en línea!
fuente