Ihre Aufgabe ist es, den Eimer mit Zahlen bis zu einer bestimmten Eingabe zu füllen.
Regeln
Zahlen stehen ganz links, ganz rechts, ganz links und so weiter.
Nach dem Überlauf sammeln sich die Zahlen auf ähnliche Weise um den Eimer. Sie nehmen diagonal Stellung ein.
Die Beispiele sollen verdeutlichen, wie hoch die erwartete Ausgabe ist (einige Regeln werden in den Beispielen erwähnt).
Verwenden Sie für mehr als 10 die am weitesten rechts stehende Ziffer
Beispiele:
The bucket:
| | or | |
| | | |
| | | |
| | | |
|------| |______|
input:1 (You can start from either 0 or 1)
output:
| | (There can be whitespace to the left even if there is no overflow
| | but the bucket must not be distorted.)
| |
|1 |
|------|
input:6
output:
| |
| |
| |
|135642|
|------|
input:8
output:
| |
| |
|7 8|
|135642|
|------|
input:23
output:
|913 20|
|357864|
|791208|
|135642|
|------|
input:27
output:
|913420|
|357864|
|791208|
|135642|
75|------|6
input:30
output:
|913420|
|357864|
|791208|
9|135642|0
75|------|68
input:40
output:
|913420|
|357864|
5|791208|6
939|135642|040
7175|------|6828
input:54 (Maximum input for start=1)
3|913420|4
13|357864|42
915|791208|620
7939|135642|0408
57175|------|68286
Das ist Code-Golf, also gewinnt der kürzeste Code.
|024531|
für ) oder nur die Eingabe?Antworten:
JavaScript (Node.js) ,
145143 BytesEin hartcodiertes Muster (siehe hier für mehr Mathe).
1-indiziert.
Probieren Sie es online!
2 Bytes dank @tsh gespeichert
quelle
/[^\s|-]/
->/[0-z]/
JavaScript (ES6),
144 ... 139137 BytesEin mathematischer Ansatz (siehe hier für weniger Mathematik).
0-indiziert.
Probieren Sie es online!
Wie?
Wir definieren:
Wenn Sie nicht nur die Ziffern der Einheit, sondern die vollständigen Werte eingeben, erhalten Sie die folgende Tabelle:
Diese Tabelle ist über die y-Achse im Wesentlichen symmetrisch, mit der Ausnahme, dass die Werte auf der linken Seite gerade und die Werte auf der rechten Seite ihre ungeraden Gegenstücke sind.
Wir definieren:
Und für jede Zelle fügen wir Folgendes hinzu:
Kommentiert
quelle
Python 2 , 170 Bytes
Probieren Sie es online!
quelle
Java 10, 168 Bytes
Port von @Arnauld 's JavaScript Antwort (also auch 1-indiziert und
-
als Bottom- Ausgabe ). Wenn dir diese Antwort gefällt, solltest du ihn auch unterstützen!Probieren Sie es online aus.
Erläuterung:
quelle
6502 Maschinencode (C64), 130 Bytes
Hierbei wird eine modifizierte Version des "vorformatierten" Ansatzes einiger anderer Antworten verwendet. Es enthält eine vollständige Zeichenfolge des Buckets, die Ziffern werden jedoch durch Werte ab ersetzt
0xC1
, während sich alle Zeichen für den direkten Druck im Bereich befinden0x01
- befinden0x7f
.Der C64-Zeichensatz enthält kein pipe (
|
) -Zeichen und wird daher durch das ähnlich aussehende PETSCII- Zeichen ersetzt0x7d
.Online-Demo
Verwendung:
SYS49152,[n]
(1-indiziert, zSYS49152,54
für die volle Ausgabe)Kommentierte Demontage :
quelle
Kohle , 64 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Geben Sie die Nummer ein.
Zeichnen Sie die Hälfte des Eimers und spiegeln Sie ihn dann, um den Eimer zu vervollständigen.
Schleife für jede Seite des Eimers.
Reflektieren Sie den Eimer, so dass wir auf beiden Schleifen in einer einheitlichen Richtung zeichnen und zur Position der ersten Ziffer auf dieser Seite des Eimers springen können.
Überfliege die Anzahl der Stellen auf dieser Seite des Eimers.
Gib die nächste Ziffer aus und bewege den Cursor nach oben und links.
Passen Sie die Cursorposition an, indem Sie die Offsets aus zwei komprimierten Zeichenfolgen
003003003005203004000500
(horizontale Offsets) und11011011011510200300040000
(vertikale Offsets) lesen . Diese Offsets berücksichtigen die obige Cursorbewegung, was günstigerweise bedeutet, dass sie niemals negativ sein müssen.quelle