Schreiben Sie das kürzestmögliche Programm, das eine Reihe eindeutiger positiver Ganzzahlen aufnimmt und eine ASCII-Darstellung konzentrischer Sechsecke mit diesen Seitenlängen aus Schrägstrichen, Unterstrichen, Leerzeichen und Zeilenumbrüchen ausgibt.
Das kürzeste Programm in Bytes, das von https://mothereff.in/byte-counter gezählt wird, gewinnt.
Beispiele
(Sie sehen mit weniger Zeilenabstand besser aus.)
Wenn die Eingabe 1
die Ausgabe ist, sollte das Sechseck mit der Seitenlänge 1 sein:
__
/ \
\__/
Beachten Sie, dass am oberen und unteren Rand des Sechsecks zwei Unterstriche verwendet werden, um die Proportionen zu verbessern.
Im Allgemeinen enthält das Sechskant der Größe N N Schrägstriche an jeder abgewinkelten Seite und 2 * N Unterstriche an der Ober- und Unterseite.
Wenn die Eingabe 1 2
die Ausgabe ist, sollten die konzentrischen Sechsecke mit den Seitenlängen 1 und 2 sein:
____
/ __ \
/ / \ \
\ \__/ /
\____/
Wenn der Eingang 1 3
der Ausgang ist, sollte sein:
______
/ \
/ __ \
/ / \ \
\ \__/ /
\ /
\______/
Wenn der Eingang 1 3 2
der Ausgang ist, sollte sein:
______
/ ____ \
/ / __ \ \
/ / / \ \ \
\ \ \__/ / /
\ \____/ /
\______/
etc.
E / A-Regeln
Die Eingabe muss entweder über die Befehlszeile oder über stdin erfolgen, kann jedoch in einem beliebigen Format erfolgen, das für Sie am bequemsten ist.
Zum Beispiel könnten Sie jede Nummer als Befehlszeilenargument geben: > myprogram 1 3 2
, oder Sie können den Benutzer zur Eingabe der Zahlen als vorformatierte Liste aufgefordert: [1, 3, 2]
.
Die Ausgabe muss auf stdout oder das nächsthöhere Sprachäquivalent erfolgen.
Zusätzliche Regeln
- Die Eingabe besteht immer aus einer Reihe eindeutiger positiver Ganzzahlen, nicht unbedingt in beliebiger Reihenfolge .
- Die Ausgabe muss ...
- keine Zeichen außer
/\ _
und Zeilenumbrüche enthalten. - haben keine nachgestellten oder unnötigen führenden Leerzeichen.
- Enthält keine überflüssigen führenden Zeilenumbrüche, kann aber einen optionalen nachgestellten Zeilenumbruch enthalten.
- keine Zeichen außer
- Wenn nichts eingegeben wird, wird nichts ausgegeben (außer möglicherweise einer neuen Zeile).
- Wenn dies hilft, können Sie davon ausgehen, dass die Eingabe-Ganzzahlen kleiner als 2 16 sind .
1
(oder eine beliebige Zahl) bezieht sich auf das Sechseck mit einer Seitenlänge von 1. (Mit der Einschränkung, dass 1 Schrägstrich = 2 Unterstriche ist.) Bezieht 1
sich also immer auf das innerste Sechseck.
1
auf das innerste oder äußerste Sechseck?