Minecraft 1.12 wird morgen veröffentlicht, also lasst uns feiern!
Schreiben Sie Code, der eine nicht negative Ganzzahl N enthält, die die Anzahl der Elemente in Minecraft angibt . Geben Sie es hilfreicher für die Spieler aus, indem Sie die Anzahl der Truhen, Stapel und Gegenstände angeben, denen N entspricht. Verwenden Sie das Format
XcYsZi
woher
X
ist die Anzahl der Truhen, die Sie vollständig mit N Gegenständen füllen können,Y
ist die Anzahl der Stapel, die Sie mit den nach dem Befüllen der Truhen verbleibenden Gegenständen füllen können,Z
ob die Anzahl der nach dem Befüllen von Truhen und Stapeln verbleibenden Gegenstände.
Beachten Sie, dass:
- 64 Elemente passen in einen Stapel. (Elemente, die auf 16 gestapelt sind, werden ignoriert oder nicht gestapelt.)
- 27 Stapel passen in eine Truhe. (Dies sind einzelne Truhen, keine doppelten Truhen.)
Es würde also niemals Sinn machen, wenn Y
mehr als 26 oder Z
mehr als 63 sind.
Eine Einschränkung des Formats besteht darin, dass dieser Begriff nicht gedruckt wird, wenn es null von etwas gibt.
Wenn also zum Beispiel
Y
NullX
und nichtZ
Null wäre, würde das Format so aussehenXcZi
.Ebenso wäre das Format, wenn
Y
undZ
Null und nichtX
Null wärenXc
.Die Ausnahme ist hier, wenn N Null ist. Dann
0i
ist die Ausgabe eher als eine leere Zeichenfolge.
Sie können davon ausgehen, dass alle N Elemente vom selben Typ sind und daher alle stapelbar sind.
Sie können keine Liste oder ein Tupel von drei Zahlen ausgeben. Sie müssen eine Zeichenfolge mit der genauen "csi" -Notation in dieser Reihenfolge ohne Leerzeichen oder Kommas angeben.
Als Referenz ist hier eine Truhe, die vollständig mit Stapeln von Gegenständen gefüllt ist:
Testfälle
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
Der kürzeste Code in Bytes gewinnt.
Antworten:
Jelly ,
2624 BytesEin vollständiges Programm, das die Nummer aufnimmt und das Ergebnis druckt.
Es scheint mir zu lang ...
Probieren Sie es online! oder sehen Sie sich die Testsuite an .
Wie?
Aktualisierung...
quelle
Retina ,
494841 BytesProbieren Sie es online! Beinhaltet alle Testfälle mit Ausnahme des letzten, falls es TIO überlastet. Bearbeiten: 7 Bytes dank @MartinEnder gespeichert. Erläuterung:
Wandle die eingegebene Zahl mit
i
s in unär um .64 Gegenstände füllen einen Stapel.
27 Stapel füllen eine Truhe.
Konvertieren Sie alle Truhen, Stapel oder verbleibenden Elemente in Dezimalzahlen, lassen Sie den Typ jedoch als Suffix.
Wenn die Eingabe Null war, machen Sie das Ergebnis
0i
.quelle
$.&
Duplikate wie folgti
statt1
, aber ich konnte einfach nicht sehen , dass die Vereinfachung, danke!C #
8486 BytesBeachten Sie die Inline-Subtraktion. Sie hat nicht erkannt, dass dies möglich ist, hat aber
i--
Sinn gemacht. Warum also nicht?i-=10
Bearbeiten:
für 0 Rand Fall und Vorschlag.
quelle
_-=_/1728*1728
um_%=1728
ein paar Bytes zu Golf.0
, der dazu führen sollte0i
und aktuell nichts ausgibt. Hinzufügen eines einfach_>0?...:"0i"
würde dies beheben.>_>
in der bearbeiteten onePython 3 , 87 Bytes
Probieren Sie es online!
quelle
/
//
str(...)
05AB1E , 24 Byte
Probieren Sie es online!
Erläuterung
quelle
0
Eingabemaske und warum wird dadurch auch eine abschließende neue Zeile gedruckt, während andere Eingaben dies nicht tun?0
Karton0i
oben auf dem Stapel (0s
und0c
befindet sich darunter) und wird gedruckt.C 85
87105110111112BytesProbieren Sie es hier aus .
Der Code funktioniert auch bei negativen Zahlen einwandfrei. Sie können jetzt Server-OP-Blöcke schulden!
quelle
JavaScript (ES6),
77 bis76 ByteTestfälle
Code-Snippet anzeigen
quelle
Java 8, 86 Bytes
Probieren Sie es hier aus.
quelle
CJam , 31 Bytes
Probieren Sie es online!
Erläuterung
quelle
JavaScript (ES6) 71 Byte
Snippet:
Code-Snippet anzeigen
quelle
Python 2 , 82 Bytes
Ich habe Gabor Feketes Kommentar von oben in ein funktionierendes Beispiel umgewandelt:
Probieren Sie es online!
quelle
Batch,
347 335 283 246 234 202 199 191189 Bytesquelle
set/a
Ausdruck verwenden können, nicht wahr?if %c%==0 (set c=)else rem
Dieser Code gibt mir "(set
wird nicht erwartet"Braingolf , 71 Bytes
Probieren Sie es online!
Gar nicht golfen, aber es funktioniert
quelle
Mathematica, 155 Bytes
quelle
PHP , 84 Bytes
Probieren Sie es online!
PHP , 93 Bytes
Probieren Sie es online!
quelle
T-SQL,
139 134139 BytesDie Eingabe wird in Spalte a der bereits vorhandenen Tabelle t gespeichert .
Zeilenumbrüche zur besseren Lesbarkeit, nicht in Bytesumme gezählt. Getestet auf MS SQL Server 2012.
EDIT 1: Mehrfach geändert
REPLACE
inIIF
, um 5 Bytes zu sparen. FinaleREPLACE
noch nötig, daSTR
nervig mit Leerzeichen bis 10 Zeichen aufgefüllt wird.BEARBEITEN 2: Das Befolgen der Regeln unter Verwendung des genehmigten Eingabetyps für SQL, Werte, die in einer benannten Tabelle gespeichert sind, wurde korrigiert . Diese Kosten für die Bytes
FROM
, erfordert auchSELECT
stattPRINT
. 2 Bytes durch Löschen unnötiger Parens wiederhergestellt.quelle
PowerShell, 113 Bytes
Dies trifft eine Reihe von Powershell-Schmerzpunkten sehr genau.
[math]::Floor
Dies ist erforderlich, da PS standardmäßig Bankers Rounding durchführt.Der PS Ternary nimmt im Vergleich zu anderen Sprachen auch eine Menge Bytes in Anspruch, um eine einfache Null-Koalleszenz (
$a="This";$a?$a:"That"
oder"This"?:"That"
) durchzuführen, die wir tun müssen(($a="This"),"That")[$a-ne$null]
dann müssen wir all diese zweimal verwenden und an einigen Stellen aufgrund der standardmäßigen Betriebsreihenfolge von Powershell einen weiteren Satz von Klammern hinzufügen.
quelle
Python 2 , 77 Bytes
Probieren Sie es online!
quelle
Gleichstrom , 76 Bytes
Probieren Sie es online!
quelle