Schreiben Sie ein Programm oder eine Funktion, die eine ganze Zahl größer als 1 oder kleiner als -1 akzeptiert. Das heißt, die Eingabe ist nicht 0, 1 oder -1.
Wenn die Eingabe ist 2
, sollte die Ausgabe sein:
|\_/|
|___|
Wenn die Eingabe ist 3
, sollte die Ausgabe sein:
|\_/\_/|
|______|
Wenn die Eingabe ist 4
, sollte die Ausgabe sein:
|\_/\_/\_/|
|_________|
Das Muster wird für größere Eingaben genauso fortgesetzt. Wenn die Eingabe beispielsweise lautet 10
, sollte die Ausgabe wie folgt lauten:
|\_/\_/\_/\_/\_/\_/\_/\_/\_/|
|___________________________|
Wenn die Eingabe ist -2
, sollte die Ausgabe sein:
____
| |
|_/\_|
Wenn die Eingabe ist -3
, sollte die Ausgabe sein:
_______
| |
|_/\_/\_|
Wenn die Eingabe ist -4
, sollte die Ausgabe sein:
__________
| |
|_/\_/\_/\_|
Das Muster wird für kleinere Eingaben genauso fortgesetzt. Wenn die Eingabe beispielsweise lautet -10
, sollte die Ausgabe wie folgt lauten:
____________________________
| |
|_/\_/\_/\_/\_/\_/\_/\_/\_/\_|
Die Ausgabe kann gedruckt oder als Zeichenfolge mit optionalem Zeilenumbruch zurückgegeben werden. Die obere rechte "leere" Ecke der Ausgabe für negative Eingaben kann ein Leerzeichen sein oder leer bleiben.
Der kürzeste Code in Bytes gewinnt.
Antworten:
Pyth, 45 Bytes
Probieren Sie es online aus: Demo oder Test Suite
Erläuterung:
quelle
CJam,
565049 BytesProbieren Sie es online im CJam-Interpreter aus.
Wie es funktioniert
quelle
Pyth,
5654 BytesIch spiele Pyth auf einem Telefon mit dem Online-Dolmetscher. Das ist eine großartige Idee.
Update 15.10.2015: Ich habe das Ding umgeschrieben (immer noch auf meinem Handy, lol) und 2 Bytes gespeichert, von denen man auch mit dem Original hätte fertig werden können.
Probieren Sie es online aus.
quelle
Minkolang 0,8 , 100 Bytes
Baut einfach den Stapel auf und druckt dann alles auf einmal aus. Ich bin mir sicher, dass das Golf spielen könnte, aber ich habe bereits viel Zeit damit verbracht ...
quelle
JavaScript (ES6),
11198 ByteOptimale Technik entdeckt! Wenn Sie alle diese Interpolatoren aus den Vorlagenzeichenfolgen entfernen, werden viele Bytes gespart . Vielleicht könnte es noch kürzer gemacht werden, vielleicht auch nicht. In jedem Fall sind ES6-Vorlagenzeichenfolgen (und Pfeilfunktionen) fantastisch. :)
quelle
Python 2.7, 144 Bytes
Das hat mehr Bytes gekostet als erwartet. Hier ist der Code.
quelle
Java, 272 Bytes
quelle
SpecBAS - 167 Bytes
IIF$
ist eine Inline-IF
Anweisung, die das#13
Einbetten von Zeilenumbrüchen in eine Zeichenfolge ermöglicht (und nicht immer ein "+" benötigt, wenn es sich um eine fest codierte Zeichenfolge handelt).In SpecBAS können Sie einer
LET
Anweisung seit einigen Releases mehrere Zuweisungen zuweisen , wodurch einige Zeichen gespart werden können.quelle
Python 2.7, 118 Bytes
Es hat Spaß gemacht, von 120 auf 118 herunter zu kommen!
quelle
Ruby - 113 Bytes
Scheint zu lang. Ich werde versuchen, dies ein bisschen mehr nach unten zu spielen.
quelle
C # 185 Bytes
C # kämpft mit sich wiederholenden Saiten.
Vollständig golfen:
Einrückung und neue Zeilen zur Verdeutlichung hinzugefügt:
quelle
Powershell -
200190186168154Erläuterte die Gleichung (4 - (($ n-2) 3)) bis (3 $ n-6) zusammen mit einigen überflüssigen Parens und Semikolons.
Gefunden, dass `n das Äquivalent von ist
[Environment]::NewLine
und dass$s -f [args]
das Äquivalent von ist[String]::Format
:In der Erläuterung bleiben klärende Klammern:
quelle