Bei einer positiven Ganzzahl <100 (von 1 bis 99, einschließlich 1 und 99) werden so viele Schließfächer ausgegeben.
Ein Schließfach ist wie folgt definiert:
+----+
| |
| |
| |
| nn |
+----+
Wo nn
ist die Schließfachnummer in Basis 10. Wenn es eine einstellige Nummer gibt, wird sie mit einer 0 davor ausgedrückt. Beispiel: Schließfach Nummer 2 zeigt die Nummer an 02
.
Schließfächer können gestapelt werden, aber nur bis zu 2 hoch:
+----+
| |
| |
| |
| on |
+----+
| |
| |
| |
| en |
+----+
on
bezeichnet eine ungerade Zahl, en
eine gerade Zahl. Schließfächer können auch nebeneinander gestellt werden.
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+----+
| | | |
| | | |
| | | |
| 02 | 04 | 05 |
+----+----+----+
Beachten Sie, dass Schließfach Nummer 5 ein Schließfach mit ungerader Nummer ist, das sich unten befindet. Dies liegt daran, dass bei einer Eingabe mit ungeraden Zahlen das letzte Schließfach auf dem Boden abgelegt werden sollte (da ein schwebendes Schließfach zu viel kostet). Das obige Beispiel ist daher die erwartete Ausgabe für n = 5. n = 0 sollte nichts zurückgeben.
Regeln: Standardmethoden für die Eingabe / Ausgabe. Eingabe in einem beliebigen Format, Ausgabe als String. Es gelten Standardlücken.
Testfälle:
Input
Output
---------------------
1
+----+
| |
| |
| |
| 01 |
+----+
--------------------- (newlines optional in case 1)
4
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+
| | |
| | |
| | |
| 02 | 04 |
+----+----+
---------------------
5
+----+----+
| | |
| | |
| | |
| 01 | 03 |
+----+----+----+
| | | |
| | | |
| | | |
| 02 | 04 | 05 |
+----+----+----+
---------------------
16
+----+----+----+----+----+----+----+----+
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| 01 | 03 | 05 | 07 | 09 | 11 | 13 | 15 |
+----+----+----+----+----+----+----+----+
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| 02 | 04 | 06 | 08 | 10 | 12 | 14 | 16 |
+----+----+----+----+----+----+----+----+
Das ist Code-Golf , also gewinnt der kürzeste Code!
1
ausgegeben werden?Antworten:
Pyth , 66 Bytes
Testsuite.
quelle
Python 2,
201191185175171166164163 BytesProbieren Sie es online!
quelle
PHP, 191 Bytes
Probieren Sie es online!
PHP, 235 Bytes
Fall 1 mit optionalen Zeilenumbrüchen
Probieren Sie es online!
Erweitert
PHP, 300 Bytes
ersetzen Sie
["","",""]
mit,["\n","\n","\n"]
wenn Sie Zeilenumbrüche für den Fall wünschen1
Probieren Sie es online!
quelle
Ruby,
256239201191183 BytesDas ist furchtbar lang. Ich werde mehr daran arbeiten, Golf zu spielen.
quelle
C (gcc) ,
426335300294282252249246244237 BytesDas muss wirklich abgespielt werden
Probieren Sie es online!
quelle
-~n/2
anstelle vonn/2+n%2
Batch, 305 Bytes
+----+
und| |
beide sind insofern ähnlich+ +
, als sie durch eine einzige Ersetzung generiert werden können, und es stellt sich heraus, dass sie etwas kürzer sind als die separate Generierung (das zusätzliche Zitat, das für|
s benötigt wird, hilft nicht).quelle
Pyth -
9774868075 BytesProbieren Sie es hier aus
quelle
JavaScript ES6, 224 Bytes
Ich habe einige Ideen aus der Python-Antwort von Math Junkie verwendet
Testschnipsel
Aufgeräumt
quelle
Kohle , 37 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Geben Sie die Anzahl der Schließfächer in ein
q
.Schlaufe über die Schließfächer von
1
bisq
einschließlich.Berechnen Sie die Richtung zum nächsten Schließfach und wiederholen Sie dies fünfmal (mehr Golf als mit Sprungbewegungen).
Zeichne das Schließfach, beginnend in der unteren linken Ecke. (Die untere rechte Ecke benötigt ebenfalls 4 Bytes, während die obere rechte Ecke 5 Bytes benötigt. Die obere linke Ecke benötigt nur 3 Bytes, aber dann würde das Zeichnen der Schließfachnummer länger dauern.)
Zeichnen Sie gegebenenfalls die führende Null der Schließfachnummer.
Zeichnen Sie die Schließfachnummer umgekehrt und von rechts nach links.
Gehen Sie zurück in die linke untere Ecke, um die Richtung zum nächsten Schließfach zu berechnen.
Bearbeiten: Spätere Versionen von Charcoal unterstützen diese 32-Byte-Lösung:
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Nehmen Sie die Zahlen von
1
bis einschließlich der eingegebenen Zahl paarweise. (Wenn die eingegebene Nummer ungerade ist, enthält das letzte Array nur ein Element.)Schleife über jedes Paar in umgekehrter Reihenfolge.
Zeichnen Sie gegebenenfalls die führende Null der Schließfachnummer.
Zeichnen Sie die Schließfachnummer umgekehrt und von rechts nach links.
Gehen Sie zum oberen linken Rand des Schließfachs und zeichnen Sie es. Dies ist auch die linke untere Ecke des nächsten Schließfachs, sodass wir gegebenenfalls das zweite Schließfach des Paares zeichnen können.
Gehe zum nächsten Schließfachpaar. (Dies sollte vor der inneren Schleife stehen, um 1 Byte zu sparen, aber Charcoal erzeugt aus irgendeinem Grund eine falsche Ausgabe für eine Eingabe von 1.)
quelle