Schreiben Sie ein Programm oder eine Funktion, die einen Gebirgszug zeichnet, bei dem jeder nachfolgende größere Berggipfel "hinter" dem vorderen liegt und abwechselnd die sichtbare Seite anzeigt.
Dies ist eine Bergkette von Größe 1
/\
Dies ist eine Bergkette von Größe 2
/\
/\ \
Dies ist eine Bergkette von Größe 3
/\
/ /\
/ /\ \
Dies ist eine Bergkette von Größe 4
/\
/\ \
/ /\ \
/ /\ \ \
Dies ist eine Bergkette von Größe 5
/\
/ /\
/ /\ \
/ / /\ \
/ / /\ \ \
Und so weiter.
Eingang
Eine einzelne positive ganze Zahl in jedem geeigneten Format , n > 0
.
Ausgabe
Eine ASCII-artige Darstellung des Gebirges nach den oben genannten Regeln. Führende / nachfolgende Zeilenumbrüche oder andere Leerzeichen sind optional, sofern die Spitzen richtig ausgerichtet sind.
Regeln
- 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.
- Standardlücken sind verboten.
- Dies ist Codegolf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Byte) gewinnt.
JavaScript (ES6), 75 Byte
Das vollständige Programm ist derzeit etwas kürzer als die rekursive Funktion:
quelle
Python 2, 67 Bytes
Druckt zeilenweise und akkumuliert die Zeichenfolge,
s
indem abwechselnd ein Schrägstrich nach links oder rechts hinzugefügt wird, basierend auf der aktuellen Parität vonn
. Präfixe mitn
Leerzeichen.Eine alternative Möglichkeit zum Aktualisieren war die gleiche Länge:
Eine rekursive Methode war länger (70 Byte).
quelle
Haskell, 77 Bytes
Verwendung:
Druckt Zeile für Zeile, wobei die Zeichenfolge s durch abwechselndes Hinzufügen eines Schrägstrichs nach links oder rechts basierend auf der aktuellen Parität von n akkumuliert wird. Präfixe mit n-1 Leerzeichen.
quelle
Batch, 202 Bytes
Übernimmt die Eingabe als Befehlszeilenparameter. Fällt durch, um die letzte Schleife auszuführen.
quelle
Ruby, 61 Bytes
Eine ziemlich unkomplizierte Portierung der JavaScript-Antwort von ETHproductions .
Siehe es auf repl.it: https://repl.it/EPU5/1
Ungolfed
quelle
Haskell,
117 107 105 9790 BytesProbieren Sie es auf Ideone. Bearbeiten: 8 Bytes mit einer Idee von Neil gespeichert.
Ungolfed-Version:
Rekursiver Ansatz. Die Form für
n
wird erzeugt, indem vor jeder Zeile dern-1
Form ein Leerzeichen eingefügt und die letzte Zeile vonn-1
und addiert wird,"/ "
bevor obn
ungerade ist oder" \"
nachdem ob geraden
ist ... oder so alle rekursiven Schritte, wenn das Finalen
ungerade ist. Daher wird ein Flagb
übergeben, das jeden rekursiven Aufruf abwechselt und bestimmt, ob der nächste Bergabschnitt links oder rechts hinzugefügt wird.quelle
b
mitodd n
jedem Zeitpunkt zu vergleichen ? Sowas wief n = unlines(p 0 n)
undlet m = p (1-b) (n-1)
.-b
ist ein weiterer Zeichen aus.b
werden , um0
oder1
.Java 7.130 Bytes
Ungolfed
quelle
n%2
zun--%2
und beide--n
zun
. EDIT: Und 1 mehr durch Hinzufügen,x=s+"\n"
und Ändern von beidens+"\n"
zux
. (Also insgesamt:String f(int n,String s){String l="",x=s+"\n";for(int i=1;i++<n;l+=" ");return n>1?n--%2<1?l+x+f(n,s+" \\"):l+x+f(n,"/ "+s):s;}
127 Bytes )C ++ 138 (Funktion)
Funktion: -
Volles Programm: -
HINWEIS: Die Funktion
_getch()
kann auf verschiedenen Compilern unterschiedliche Prototypnamen haben.quelle