Herausforderung
Wir alle wissen um normale Weihnachtsbaum - aber wie etwa einen Upside-Down - Weihnachtsbaum ! Dies ist eine ziemlich einfache, weihnachtliche Herausforderung. Das Ziel dieser Herausforderung ist es, mich zu einem verkehrten ASCII-Weihnachtsbaum zu machen. Hier sind die Regeln für diese Herausforderung:
- Akzeptiere eine ungerade, positive ganze Zahl. Sie können davon ausgehen, dass es immer zwischen
7
und liegen wird51
. Die Basis des Baumes besteht aus den Zeichen:
___ \ / |
Die Spitze des Baumes (der Stern) besteht aus einem einzigen
*
.Jede Zeile des Baums wird mit dem Format erstellt,
<?>
in dem?
eine beliebige Anzahl von-
s angegeben ist. Wenn Sie beispielsweise eine Linie mit einer Länge5
erstellen, sollte diese Linie so sein<--->
. Oder wenn Sie eine Linie von Länge machen8
, sollte die Linie sein<------>
.So sollte der Körper des Baumes aufgebaut sein:
Nehmen Sie die ungerade Zahl
n
als Eingabe und erstellen Sie eine Linie mit dieser Länge.Subtrahiert
4
ausn
und eine Linie des Baumes, die Länge erstellen.Subtrahiert
2
ausn
und eine Linie des Baumes, die Länge erstellen.Dekrement
n
von2
. Fahren Sie danach, sofern nichtn
gleich5
, mit Schritt 2 fort.
Die Basis (siehe Schritt 2.), der Stern (siehe Schritt 3.) und jede Zeile des Baums (siehe Schritte 4. und 5.) sollten alle mit der ursprünglichen ungeraden Zahleneingabe (siehe Schritt 1.) als Maximum zentriert werden Breite.
Beispiele / Testfälle
odd number inputed: 7
___
\ /
|
<-----> line length -> 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 13
___
\ /
|
<-----------> line length -> 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 9
___
\ /
|
<-------> line length -> 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
odd number inputed: 17
___
\ /
|
<---------------> line length -> 17
<-----------> line length -> 17 - 4 = 13
<-------------> line length -> 17 - 2 = 15
<---------> line length -> 15 - 4 = 11
<-----------> line length -> 15 - 2 = 13
<-------> line length -> 13 - 4 = 9
<---------> line length -> 13 - 2 = 11
<-----> line length -> 11 - 4 = 7
<-------> line length -> 11 - 2 = 9
<---> line length -> 9 - 4 = 5
<-----> line length -> 9 - 2 = 7
<-> line length -> 7 - 4 = 3
<---> line length -> 7 - 2 = 5
*
Regeln
- Es gelten Standardlücken .
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes!
repeat the above steps until the odd number minus 2 equals 5
- in der ersten Eingabe ist die ungerade Zahl 7 und 7-2 = 5, daher sollte der Baum sofort enden (ich weiß, was Sie meinen, aber es muss umformuliert werden)
7
die minimale Eingabe ist, würden Sie zuerst die drei Baumlinien erstellen (Unterschritte .1.1, .1.2, .1.3), dann2
von der ungeraden Zahl subtrahieren und testen, ob sie gleich ist 5
. Die Anweisung, zu überprüfen, ob die "ungerade Zahl minus 2 gleich 5" ist, ist am Ende, die anderen drei Schritte sollten zuerst ausgeführt werden. Aber um Ihren ersten Kommentar zu beantworten, wäre das in Ordnung.
7
als Eingabe akzeptieren müssen oder ob Sie akzeptieren können 4
, wie in der vierten ungeraden Zahl (oder 3
ob es 0-indiziert ist).