(nein, nicht diese )
Die Herausforderung
Sie erhalten zwei Eingänge. Die erste ist eine positive Ganzzahl n > 0
, mit der ein n x n
rechtwinkliges Dreieck der Zahlen ausgegeben wird 1, 2, 3, ... n
. Dieses Dreieck beginnt in einer Ecke und vergrößert sich horizontal und vertikal um eins und diagonal um zwei. Zur Verdeutlichung siehe nachfolgende Beispiele. Lassen Sie einen Abstand zwischen den Spalten und richten Sie alle Zahlen in den jeweiligen Spalten rechtsbündig aus. (Das ist doch Asciikunst ).
Die zweite Eingabe x
ist eines von vier verschiedenen einzelnen ASCII-Zeichen Ihrer Wahl, die die Startecke des Dreiecks (und damit die Ausrichtung) bestimmen. Zum Beispiel könnten Sie 1,2,3,4
oder a,b,c,d
oder #,*,!,)
usw. verwenden. Bitte geben Sie in Ihrer Antwort an, wie die Ausrichtung funktioniert.
Zur Verdeutlichung dieser Herausforderung verwende ich, 1,2,3,4
was 1
links 2
oben, rechts oben usw. im Uhrzeigersinn entspricht.
Die Beispiele
Zum Beispiel für n = 5
, x = 1
Ausgabe wie folgt vor :
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
Für die Eingabe n = 11
, x = 1
die folgende Ausgabe (beachten Sie die zusätzlichen Leerzeichen so werden die einzelnen Ziffern rechtsbündig):
1 2 3 4 5 6 7 8 9 10 11
2 3 4 5 6 7 8 9 10 11
3 4 5 6 7 8 9 10 11
4 5 6 7 8 9 10 11
5 6 7 8 9 10 11
6 7 8 9 10 11
7 8 9 10 11
8 9 10 11
9 10 11
10 11
11
Mit Ein- n=6
und x=2
Ausgang:
6 5 4 3 2 1
6 5 4 3 2
6 5 4 3
6 5 4
6 5
6
Mit Eingabe n = 3
und x = 4
Ausgabe:
3
2 3
1 2 3
Mit input n = 1
und any x
, output:
1
Die Regeln
- Führende / nachfolgende Zeilenumbrüche oder andere Leerzeichen sind optional, sofern die Zahlen richtig ausgerichtet sind. (Zum Beispiel ist es akzeptabel, Leerzeichen nachzustellen, um eine quadratische Ausgabe zu erhalten.)
- Es ist entweder ein vollständiges Programm oder eine Funktion zulässig. Bei einer Funktion können Sie die Ausgabe zurückgeben, anstatt sie zu drucken.
- Die Ausgabe kann auf der Konsole erfolgen, als Bild gespeichert, als Liste von Zeichenfolgen usw. zurückgegeben werden. Beliebiges praktisches und zulässiges Format .
- Standardlücken sind verboten.
- Dies ist Codegolf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Byte) gewinnt.
Antworten:
Gelee , 13 Bytes
Probieren Sie es online!
Argument links: Argument
n
rechts:
x
(0
= links1
oben = rechts oben2
= links3
unten = rechts unten)quelle
MATL , 18 Bytes
Erste Eingabe ist
n
. Die zweite Eingabe lautetx
:0
: oben links1
: unten links2
: unten rechts3
: oben rechts(Oder es kann eine beliebige andere Ganzzahl sein, die als Modulo 4 interpretiert wird).
Probieren Sie es bei MATL Online!
quelle
APL (Dyalog) , 29 Bytes
Probieren Sie es online!
Wie?
¨⍳⍵
- für jedesi
im Bereich vonn
(⍳+⍵-⊢)
- Produktreihei
mit vektorisierter Addition vonn - i
↑⌽
- umkehren und abflachen⌽∘⍉
- nach rechts drehen⍣⍺⊢
-x
mal' '@(=∘0)
- Nullen entfernenquelle
JavaScript
130128154142138135133 Bytes* Probleme mit der Polsterung behoben
quelle
Python 2 ,
124120 BytesProbieren Sie es online! oder Probieren Sie alle Testfälle aus
(r+[n]+['']*i)[-n:]
fügt auf die richtige Größe, einige leere Strings in der Nummernliste und hackenzip
mit[::1-x%4/2*2]
und[::1-x/3*2]
wird die Drehung machen, und%%%ds'%len(`n`)*n
wird eine Zeichenfolge für fomating (wie erzeugen' %3s %3s %3s'...
) auf jeder Zahlen + leeren String - Liste verwendet werdenquelle
Mathematica, 89 Bytes
Hier ist eine andere Lösung, die in TIO funktioniert
Mathematica, 122 Bytes
Probieren Sie es online!
quelle
Kohle , 39 Bytes
Probieren Sie es online! Hinweis: Leerzeichen am Ende. Link ist eine ausführliche Version des Codes. Der zweite Wert ist die Anzahl der Umdrehungen gegen den Uhrzeigersinn, sodass 0 links oben, 1 links unten, 2 rechts unten und 3 rechts oben ist. Erläuterung:
quelle
Javascript (ES6),
241222214 BytesWeniger Golf
Hinweis zur Orientierung.
Der zweite Parameter ist ein Zeichen aus {'0', '1', '2', '3'} und wird vom
&
Bediener automatisch in eine Zahl umgewandelt . Wenn das Bit 0 (lsb) der Zahl gesetzt ist, werden die Zeilen vertikal gespiegelt. Wenn Bit 1 (nlsb) gesetzt ist, werden Spalten horizontal gespiegelt. Andere Dezimalstellen können mit vorhersagbaren Ergebnissen verwendet werden.Nachgestellte Leerzeichen
Leere Einträge in der Ausgabezeichenfolge wurden durch Leerzeichen ersetzt. Dies bedeutet, dass Zeilen in den Ausrichtungen '0' und '1' nachgestellte Leerzeichen haben.
quelle
Lua, 250 Bytes
Übernimmt die Parameter [w] idth und [m] ode unter Verwendung von 1,2,3,4 für die im Beispiel beschriebenen Modi.
quelle
05AB1E (61 Byte)
Probieren Sie es online aus
quelle