Drucken Sie bei einer nicht negativen Ganzzahl eine so X
große Zahl aus . X
ist die Ausgabe für die Eingabe 0
, und Sie fügen Schrägstriche hinzu, die der Eingabe in jeder Richtung entsprechen, um die X
für größere Eingaben zu erweitern.
Testfälle
0
X
1
\ /
X
/ \
2
\ /
\ /
X
/ \
/ \
...
10
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\ /
X
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
Regeln
Sie können entweder die Ausgabe drucken oder eine Zeichenfolge oder eine Liste von Zeichenfolgen aus einer Funktion zurückgeben. Ein abschließender Zeilenumbruch sowie zusätzliche Leerzeichen im Inneren, die sich nicht auswirken, sind zulässig.
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes!
X
in der Mitte umgehen kann (ein Teil, warum ich es hinzugefügt habe), aber wer weiß: DAntworten:
Canvas , 3 Bytes
Probieren Sie es hier aus!
halb so groß wie die Antwort von Charcoal: D
quelle
Holzkohle , 6 Bytes
Dein Unsinn hält mich nicht auf;)
Probieren Sie es online!
quelle
JavaScript (ES6), 79 Byte
Verwendet eine rekursive Funktion g , die ein Raster durchläuft und die Ausgabe zeichenweise erstellt.
Wie?
Beide Variablen x und y iterieren von 2n bis -1 , wobei n die Eingabe ist.
Für jede Position (x, y) im Raster wählen wir eines der folgenden Zeichen aus:
/
\
X
unter Verwendung der folgenden Tests:
~x
: Falsy if x == -1 : Wir haben ein Zeilenende erreicht.x-y
: Falsy if x == y : Wir befinden uns auf der Anti-Diagonale.x+y-w
: Falsch, wenn x + y == w : Wir befinden uns auf der Diagonale.x-n
: Falsy if x == n : da dieser Test nur durchgeführt wird, wenn x == y ist , bedeutet dies, dass wir uns genau in der Mitte des Gitters befinden.und der folgende Entscheidungsbaum:
Demo
Code-Snippet anzeigen
quelle
MATL , 16 Bytes
Probieren Sie es online!
Betrachten Sie die Eingabe
2
als Beispiel. Der Stapel wird hier verkehrt herum dargestellt, dh die unteren Elemente wurden zuletzt verschoben.quelle
C
108106 BytesProbieren Sie es online!
(-2 Golfen dank MD XF)
Es werden zwei Zeichen (zuerst
c = 47
ein Schrägstrich undc + 45
dann ein umgekehrter Schrägstrich) mit einer dynamischen Feldbreite gedruckt.Die Feldbreiten beginnen bei
1
und2n
und bei jeder Iteration wird die erste Breite um 1 erhöht und die zweite um 2 verringert.Wenn die zweite
'X'
Feldbreite 0 wird, wird anstelle der regulären Zeichen eine neue Zeile ausgegeben und die Richtung der Inkremente (i
) umgekehrt . Eine neue Zeile wird für alle anderen Zeilen separat gedruckt (puts("")
).quelle
a,b,i=1,c;g(n){for(b=2*n,c=47;a+=i;b?puts(""):(i=-i,c=92),b-=2*i)printf("%*c%*c",a,b?c+45*i:88,b,b?c:10);}
Probieren Sie es online!shortC , 111 Bytes
Basierend auf meiner C-Antwort . Conversions:
R
->printf(
P
->putchar(
W
->while(
O
->for(
");}
Dies verwendet auch ASCII-Codes für
\
und/
.Probieren Sie es online!
quelle
Python 2 , 81 Bytes
Probieren Sie es online!
quelle
C
168,155,150 Bytes-5 dank Computronium
Kann sicherlich Golf gespielt werden; Mache ich so Probieren Sie es online!
Ungolfed:
quelle
V , 21 Bytes
Probieren Sie es online!
Hexdump:
Erläuterung:
Grundsätzlich müssen wir ein X einfügen, n-mal die Schrägstriche verlängern .
Ganz so einfach ist es aber nicht, da wir die Schrägstriche auch gleich beim ersten Mal hinzufügen müssen. Wenn die Schrägstriche bereits vorhanden wären, könnten wir die Schrägstriche wie folgt erweitern :
Das würde uns 6 Bytes sparen.
quelle
C #,
157122120 BytesUngolfed-Version:
quelle
_=d=>new string(' ',d);
einfügen (beachten Sie, dass keine geschweiften Klammern erforderlich sindd
). Sie können die geschweiften Klammern um die for-Schleife entfernen. Verwenden Sie eine wörtliche Zeichenfolge mit, damit Sie nicht alle umgekehrten Schrägstriche umgehen müssen. Wenn Siei=0
dann einstellen , können Sie das tun++i<a+1
und entferneni++
.\n
funktioniert ein tatsächlicher Zeilenvorschub, obwohl ich nicht sicher bin, ob Sie dann die geschweiften Klammern um die for-Schleife entfernen können, müssen Sie es versuchen.++i<a+1
für++i<=a
EDIT Sie können auch speichern 4 weitere Bytes , die durch die VeränderungFunc
vonnew string(' ',d)
zu"".PadLeft(d)
_
.Mathematica, 71 Bytes
(Teilweise inspiriert von Jenny_mathys 104-Byte-Lösung)
Gibt eine Liste von Zeichenfolgen zurück.
Erklärung:
IdentityMatrix[2#+1]
Erstellt eine Matrix der richtigen Größe mit 1s entlang der Diagonale und 0s an einer anderen Stelle. Als nächst wir mehrfach durch"\\"
(einen entflohener Backslash), die an anderer Stelle macht, es ist eine Matrix mit Schrägstrichen entlang der Diagonalen und 0er da natürlich 1 mal Backslash Backslash und 0 mal Backslash 0. Wir fügen diese zu"/"
Zeiten seine Rückseite zu machen die X-Form. Wir sind fast fertig, außer es gibt noch überall Nullen und die Mitte ist"\\" + "/"
. Wir beheben diese beiden Dinge durch Ersetzen" "
von0
und"X"
füra_+_
, was jeder Summe von zwei Dingen entspricht (wie_+_
sollte, außer dass Mathematica zu schlau für sich ist und dies als 2-mal interpretiert_
). Schließlich""<>#&/@
verwandelt sich dies in eine Liste von Zeichenfolgen.quelle
Java (OpenJDK 8) , 135 Byte
Lambda-Ausdruck, der eine Ganzzahl annimmt und ein Array von Strings zurückgibt
Probieren Sie es online!
Ungolfed:
quelle
T-SQL, 201 Bytes
Formatiert:
Die Eingabe erfolgt über Spalte a in benannte Tabelle t , gemäß unseren Richtlinien .
quelle
Ruby , 66 Bytes
Rekursive Funktion.
Probieren Sie es online!
Erläuterung
quelle
Gelee ,
2417 BytesProbieren Sie es online!
Wie es funktioniert
-6 Bytes dank @LeakyNun und -1 Bytes mit einer zusätzlichen Verbesserung
quelle
Batch, 201 Bytes
Beginnt mit dem Aufbau der obersten Zeile und verschiebt dann nach dem Drucken jeder Zeile die
\
rechte und die/
linke Stelle um jeweils eine Stelle, wobei sichergestellt wird, dass sieX
in der Mitte stehen.quelle
PHP , 115 Bytes
Probieren Sie es online!
quelle
Retina , 74 Bytes
Probieren Sie es online!Erläuterung:
Stelle das
X
.Beginnen Sie mit
X
, arbeiten Sie nach oben und platzieren Sie jeweils\
diagonal nach links. Platziere auch a/
nach dem/
letzten Mal noch zwei Leerzeichen .Beginnen Sie mit
X
, arbeiten Sie nach unten und platzieren Sie jeweils/
diagonal nach links. Platziere auch a\
nach dem/
letzten Mal noch zwei Leerzeichen .Die Anzahl der Leerzeichen zwischen den beiden Diagonalen muss ungerade sein, damit das letzte Leerzeichen in jeder Zeile (mit Ausnahme der ursprünglichen
X
Zeile) gelöscht wird.quelle
Mathematica, 131 Bytes
Mathematica, 104 Bytes
Hier ist ein anderer Ansatz mit Grid
quelle
APL (Dyalog) , 25 Bytes
Benötigt,
⎕IO←0
was auf vielen Systemen Standard ist.Probieren Sie es online!
' \/'[
…]
Indexiere den String mit⎕
Eingabe abrufen2×
multiplizieren mit zwei1+
füge eins hinzu⍳
als viele ganze Zahlen∘.=⍨
Gleichheitstabelle (dh Identitätsmatrix; NW-SE-Diagonale)(
…)
Wenden darauf die folgende implizite Funktion an⊢
das Argument+
Plus2×
zweimal⌽
das horizontal gespiegelte Argument (dh NE-SW-Diagonale)quelle
Bash , 138 Bytes
Probieren Sie es online!
Wirklich lange, heftige Erhitzungen '\ und /'
Weniger golfen
quelle
Python 2 ,
9584 Bytes-10 Bytes dank @FelipeNardiBatista
Probieren Sie es online!
quelle
05AB1E , 21 Bytes
Probieren Sie es online!
quelle
Perl 5, 110 + 1 = 111 Bytes
Verwendet
-n
Flagge.quelle
QBIC , 90 Bytes
Wie diese Monstrosität funktioniert, bleibt als Übung für den Leser ...
Beispielausgabe:
quelle
Visual Basic.Net ,
454450 Bytesnicht sicher , ob eine func dafür , ob machen
writeline
wird für den Hinweis auf einige Bytes dank Stephen S speichernas ...
Entfernung auch geändertinteger
inobject
zuletzt geändert , um die erste zurückquelle
as Types
, denn wenn Sie habenOption Strict Off
, verhält sich VB.NET wie eine lose getippte Sprache.function
s ! =for loops
Danke für den GolfOption Strict
standardmäßig deaktiviert? Es ist in Visual Studio mindestens05AB1E , 22 Bytes
Probieren Sie es online!
Erläuterung
Alternative 22-Byte-Lösung
quelle
Pyke, 14 Bytes
Probieren Sie es hier aus!
quelle
tcl, 134
Demo
einstellen
n
die erste Zeile setzen.Vielleicht kann ich mit einem rekursiven Ansatz mehr Golf spielen
quelle
R ,
7572 BytesInspiriert von dieser Antwort , generiert sie eine implizite Matrix und schreibt sie in stdout. liest die größe von stdin. Es muss eine Matrix aus Leerzeichen erstellen und verwendet
sep=''
B / C, ansonsten treten Abstandsprobleme auf.Probieren Sie es online!
quelle