Herausforderung:
Eingabe: Eine positive ganze Zahl
Ausgabe:
Erstellen Sie eine Liste im Bereich und fügen Sie sie zu einer Zeichenfolge zusammen (dh wäre die Zeichenfolge ).12345678910111213
Jetzt geben wir ein Dreieck mit den Präfixen oder Suffixen dieser Zeichenfolge in einer der folgenden vier Ausrichtungen aus, die auf der Ganzzahl der Eingabe basieren:
- Wenn , wird es in der Dreiecksform ◣ ausgegeben
- Wenn , wird es in der Dreiecksform ◤ ausgegeben
- Wenn , wird es in der Dreiecksform ◥ ausgegeben
- Wenn , wird es in der Dreiecksform ◢ ausgegeben
Beispiel:
Eingabe:
Da , ist die Form ◤. Hier drei mögliche gültige Ausgaben:
12345678910111213 11111111111111111 12345678910111213
1234567891011121 2222222222222222 2345678910111213
123456789101112 333333333333333 345678910111213
12345678910111 44444444444444 45678910111213
1234567891011 5555555555555 5678910111213
123456789101 666666666666 678910111213
12345678910 77777777777 78910111213
1234567891 8888888888 8910111213
123456789 999999999 910111213
12345678 11111111 10111213
1234567 0000000 0111213
123456 111111 111213
12345 11111 11213
1234 1111 1213
123 222 213
12 11 13
1 3 3
Herausforderungsregeln:
- Wie Sie an den drei oben genannten gültigen Ausgaben sehen können, ist nur die richtige Form und die Verwendung aller Ziffern in der richtigen Reihenfolge wichtig. Abgesehen davon können Sie Präfixe oder Suffixe verwenden. kehrt um / reflektiert; Diagonaldruck; usw. usw. Jede der sechs möglichen Ausgaben für jede Form ist zulässig (siehe Testfall unten, um alle gültigen Ausgaben basierend auf der Form anzuzeigen). Auf diese Weise können Sprachen mit integrierten Rotationsfunktionen verwendet werden. Wenn Sie jedoch keine Rotationsfunktionen verwenden, können Sie alternativ die Präfixe in der richtigen Größe von oben nach unten oder die Präfixe für zwei der Formen, aber die Suffixe für die beiden anderen Formen verwenden . Die Auswahl der am besten geeigneten Ausgabeoptionen für Ihre Sprache ist Teil des Golfprozesses. :)
- Die Eingabe ist garantiert eine positive Ganzzahl. Für wir einfach aus .
1
- Es sind beliebig viele führende / nachfolgende Zeilen / Leerzeichen zulässig, solange das richtige Dreieck (ohne vertikale oder horizontale Begrenzer!) Irgendwo auf dem Bildschirm gedruckt wird.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln mit Standard-E / A-Regeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp, verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu (z. B. TIO ).
- Außerdem wird dringend empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Testfälle:
Eingabe:
Alle möglichen gültigen Ausgaben:
12345 54321 12345 54321 11111 55555
1234 5432 2345 4321 2222 4444
123 543 345 321 333 333
12 54 45 21 44 22
1 5 5 1 5 1
Eingabe:
Alle möglichen Ausgaben:
123456 654321 123456 654321 111111 666666
12345 65432 23456 54321 22222 55555
1234 6543 3456 4321 3333 4444
123 654 456 321 444 333
12 65 56 21 55 22
1 6 6 1 6 1
Eingabe:
Alle möglichen Ausgaben:
1 1 7 7 7 1
12 21 67 76 66 22
123 321 567 765 555 333
1234 4321 4567 7654 4444 4444
12345 54321 34567 76543 33333 55555
123456 654321 234567 765432 222222 666666
1234567 7654321 1234567 7654321 1111111 7777777
Eingabe:
Alle möglichen Ausgaben:
1 1 8 8 8 1
12 21 78 87 77 22
123 321 678 876 666 333
1234 4321 5678 8765 5555 4444
12345 54321 45678 87654 44444 55555
123456 654321 345678 876543 333333 666666
1234567 7654321 2345678 8765432 2222222 7777777
12345678 87654321 12345678 87654321 11111111 88888888
Eingabe:
Nur mögliche Ausgabe:
1
Eingabe:
Alle möglichen Ausgaben:
12 21 12 21 11 22
1 2 2 1 2 1
n==13
ja, kann die oberste Zeile'33333333333333333'
(oder gleichwertig'31211101987654321'
) sein?mod 4
sind strenge Paare für diese Herausforderung. Sie können also die vier Formen für die viermod 4
Fälle nicht wechseln . Aber trotzdem eine gute Frage.Antworten:
JavaScript (ES6),
93 bis89 ByteGibt eine Zeichenmatrix zurück.
Probieren Sie es online!
Alternatives Muster (gleiche Größe):
Probieren Sie es online!
Kommentiert
Formzusammenfassung
Nachfolgend finden Sie eine Zusammenfassung der Grundform (generiert durch die verschachteltenn mod 4
map
Schleifen) und der endgültigen Form (nach dersort
) für jedes :quelle
Python 2 , 94 Bytes
Probieren Sie es online!
quelle
Japt , 8 Bytes
Gibt ein Array von Zeilen zurück.
Versuch es
2 Bytes gespart dank Kevin .
quelle
ú
nötig? Es scheint, dass die Drehung dies implizit tut?z
.Canvas , 8 Bytes
Probieren Sie es hier aus!
quelle
Perl 6 , 94 Bytes
Probieren Sie es online!
Anonymer Codeblock, der eine Nummer annimmt und eine Liste von Zeilen zurückgibt.
quelle
Kohle , 17 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Eingabe
n
.Erstellen Sie eine Zeichenfolge , die durch die Nummern verketten
1
zun
.Füllen Sie ein Dreieck dieser Länge mit der Zeichenfolge.
Dreieck um
n*90
Grad gegen den Uhrzeigersinn drehen.Reflektieren Sie alles und erhalten Sie ein Dreieck, das um
n*90
Grad im Uhrzeigersinn gedreht wird .quelle
C # (Visual C # Interactive Compiler) , 128 Byte
Probieren Sie es online!
quelle
Ruby ,
958279 BytesProbieren Sie es online!
3 Bytes gespeichert von G.
quelle
R ,
152139137134 BytesAbgerollter Code:
Probieren Sie es online!
quelle
APL + WIN, 45 Bytes
Fordert zur Eingabe einer Ganzzahl auf
Probieren Sie es online! Mit freundlicher Genehmigung von Dyalog Classic
quelle
PowerShell , 108 Byte
Probieren Sie es online!
Ein bisschen rau an den Rändern, aber funktioniert. Verbindet die Ziffern 1 zu
n
einer Zeichenfolge und iteriert dann von 0 bis zur Länge dieser Zeichenfolge-1. Jedes Mal wird eine Listenindizierung verwendet, um auf die richtige Abstandsmethode und den richtigen Nummernbereich zu wechseln, die zum Schneiden der neuen Zeichenfolge verwendet werden.quelle
Gelee , 12 Bytes
Probieren Sie es online!
quelle
05AB1E (Legacy) ,
141210 ByteAus irgendeinem Grund ist es extrem langsam, die alte Version für das Neuschreiben zu verwenden.
2 Bytes dank Kevin Cruijssen gespeichert
Probieren Sie es online!
Erläuterung
quelle
LJη€S
zuLSη
, daS
implizit abflacht.€S
was nicht sehr gutStax , 10 Bytes
Führen Sie es aus und debuggen Sie es
quelle
PowerShell ,
10510195 Byte-4 Bytes danke Arnauld für den Trick mit Sort .
Probieren Sie es online!
Weniger golfen:
quelle
R ,
175172154 BytesProbieren Sie es online!
Ein schreckliches Durcheinander!
-3 Bytes durch Ändern der Rotationsbedingung
-17 Bytes dank digEmAlls Vorschlag und ein weiteres Byte nach dem Golfspielen
quelle
Wolfram Language (Mathematica) , 137 Byte
Probieren Sie es online!
quelle
Python 2 , 116 Bytes
Probieren Sie es online!
quelle
Rot , 155 Bytes
Probieren Sie es online!
quelle
Perl 5, 117 Bytes
TIO
quelle
PHP ,
116111109 BytesProbieren Sie es online!
Mit
php -nF
Eingabe von ausführenSTDIN
.$ echo 6|php -nF t.php
quelle
Java (JDK) ,
247209188186160148 BytesProbieren Sie es online!
-38 bytes
danke an @KevinCruijssen,-21 bytes
indem ichprintf
die Polsterung handhabe.-2 bytes
Durch Ausführen von Teilzeichenfolgen vor dem Ersetzen können wir anl
einer Stelle anstatt an zwei inkrementieren .-26 bytes
- Mitprintf
dem Auffüllen war die Zeichenfolge mit Leerzeichen nicht mehr erforderlich, und die Ziffernfolgen konnten anscheinend kürzer generiert werden.-12 bytes
indem wir nicht mit einzelnen Ziffern herumspielen, anstatt Teilzeichenfolgen der perfekt zu verwendenden Zeichenfolge zu drucken, die wir bereits haben.Ungolfed
quelle
for(
können entfernt werden.new String(new char[w=s.length()]).replace('\0',' ')
kann" ".repeat(w=s.length())
Java 11+ verwenden. Sie können die Klammern um die Ternär-Checks entfernen.1>(i-1)%4/2
kann sein1>~-i%4/2
.w-1-l++
kann seinw+~l++
. Und Sie müssen das abschließende Semikolon nicht in der Byteanzahl zählen. Das alles zusammen ergibt 209 Bytes .