Minecraft 1.12 sortira demain, alors célébrons!
Écrivez du code qui prend un entier non négatif N qui représente le nombre d'éléments de quelque chose dans Minecraft . Produisez-le d'une manière plus utile pour les joueurs, en donnant le nombre de coffres, de piles et d'objets N est équivalent à. Utilisez le format
XcYsZi
où
X
est le nombre de coffres que vous pouvez remplir complètement avec N objets,Y
est le nombre de piles que vous pouvez remplir avec les objets restants après avoir rempli les coffres,Z
si le nombre d'objets restant après avoir rempli les coffres et les piles.
Notez que:
- 64 articles peuvent être rangés dans une pile. (Nous ignorerons les éléments qui se cumulent jusqu'à 16 ou ne se cumulent pas.)
- 27 piles tiennent dans un coffre. (Ce sont des coffres simples, pas des coffres doubles.)
Cela n'aurait donc aucun sens si Y
est supérieur à 26 ou s'il Z
est supérieur à 63.
Une mise en garde avec le format est que s'il n'y a rien de quelque chose, ce terme n'est pas imprimé.
Ainsi, par exemple, si
Y
zéro etX
etZ
non nul, le format ressembleraitXcZi
.De même, si
Y
etZ
étaient zéro etX
différent de zéro, le format seraitXc
.L'exception ici est lorsque N est zéro. Ensuite ,
0i
est la sortie plutôt que d' une chaîne vide.
Vous pouvez supposer que tous les N éléments sont du même type, donc tous empilables.
Vous ne pouvez pas afficher une liste ou un tuple de trois nombres. Vous devez donner une chaîne avec la notation "csi" exacte, dans cet ordre, sans espace ni virgule.
Pour référence, voici un coffre complètement rempli de piles d'objets:
Cas de test
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
Le code le plus court en octets gagne.
Réponses:
Gelée ,
2624 octetsUn programme complet prenant le nombre et imprimant le résultat.
Cela me semble trop long ...
Essayez-le en ligne! ou consultez la suite de tests .
Comment?
mise à jour ...
la source
Rétine ,
494841 octetsEssayez-le en ligne! Comprend tous les cas de test sauf le dernier, au cas où il surchargerait TIO. Edit: 7 octets enregistrés grâce à @MartinEnder. Explication:
Convertissez le numéro d'entrée en unaire à l'aide de
i
s.64 objets remplissent une pile.
27 piles remplissent un coffre.
Convertissez les coffres, piles ou éléments restants en décimal, mais en laissant le type comme suffixe.
Si l'entrée était nulle, faites le résultat
0i
.la source
$.&
duplication comme celle-ci: tio.run/##FYs9DsIwDIX3d46ASpGq2Ens5ARcAiEQYsjCQNmqnj21Lb9veD@/…i
lieu de1
, mais je ne pouvais tout simplement pas voir cette simplification, merci!C #,
8486 octetsRemarquez la soustraction en ligne, je ne savais pas que c'était possible mais c'était
i--
logique alors pourquoi pasi-=10
Modifier:
pour 0 cas de bord et suggestion.
la source
_-=_/1728*1728
de_%=1728
golf quelques octets.0
, ce qui devrait entraîner0i
et ne génère actuellement rien. L'ajout d'un simplement_>0?...:"0i"
résoudrait ce problème.>_>
dans celui éditéPython 3 , 87 octets
Essayez-le en ligne!
la source
/
au lieu de//
) et en utilisant l'opérateur de backtick au lieu destr(...)
05AB1E , 24 octets
Essayez-le en ligne!
Explication
la source
0
cas d'entrée, et pourquoi cela imprime-t-il également une nouvelle ligne de fin alors que d'autres entrées ne le font pas?0
cas0i
sera sur le dessus de la pile (0s
et0c
sera en dessous) et sera imprimé.C, 85
87105110111112octetsEssayez-le ici .
Le code fonctionne même correctement sur les nombres négatifs. Vous pouvez maintenant devoir des blocs OP de serveur!
la source
JavaScript (ES6),
7776 octetsCas de test
Afficher l'extrait de code
la source
Java 8, 86 octets
Essayez-le ici.
la source
CJam , 31 octets
Essayez-le en ligne!
Explication
la source
JavaScript (ES6) 71 octets
Fragment:
Afficher l'extrait de code
la source
Python 2 , 82 octets
J'ai converti le commentaire de Gabor Fekete d'en haut en un exemple de travail:
Essayez-le en ligne!
la source
Lot,
347 335 283 246 234 202 199 191189 189 octetsla source
set/a
expression, n'est-ce pas?if %c%==0 (set c=)else rem
ce code me donne "(set
n'est pas prévu"Braingolf , 71 octets
Essayez-le en ligne!
Pas du tout golfique, mais ça marche
la source
Mathematica, 155 octets
la source
PHP , 84 octets
Essayez-le en ligne!
PHP , 93 octets
Essayez-le en ligne!
la source
T-SQL,
139 134139 octetsL'entrée est stockée dans la colonne a du tableau préexistant t .
Sauts de ligne pour la lisibilité, non comptés dans le total d'octets. Testé sur MS SQL Server 2012.
EDIT 1: Changé multiple
REPLACE
pourIIF
sauver 5 octets. FinalREPLACE
toujours nécessaire carSTR
contient des espaces de 10 caractères.EDIT 2: correction pour suivre les règles en utilisant le type d'entrée approuvé pour SQL, valeurs stockées dans une table nommée . Ce coût en octets pour le
FROM
, nécessite égalementSELECT
au lieu dePRINT
. Récupéré 2 octets en supprimant un parens inutile.la source
PowerShell, 113 octets
Cela frappe très précisément un tas de points faibles de PowerShell.
[math]::Floor
est nécessaire pour cela, car PS effectue l'arrondi des banquiers par défaut.le PS Ternary prend également une charge d'octets par rapport aux autres langages, pour faire une simple coallescence nulle (
$a="This";$a?$a:"That"
ou"This"?:"That"
) que nous devons faire(($a="This"),"That")[$a-ne$null]
nous devons ensuite utiliser tous ces éléments deux fois, et également ajouter un autre ensemble de crochets à certains endroits en raison de l'ordre de fonctionnement par défaut de powershell.
la source
Python 2 , 77 octets
Essayez-le en ligne!
la source
dc , 76 octets
Essayez-le en ligne!
la source