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
7und 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änge5erstellen, 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
nals Eingabe und erstellen Sie eine Linie mit dieser Länge.Subtrahiert
4ausnund eine Linie des Baumes, die Länge erstellen.Subtrahiert
2ausnund eine Linie des Baumes, die Länge erstellen.Dekrement
nvon2. Fahren Sie danach, sofern nichtngleich5, 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)
7die 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.
7als Eingabe akzeptieren müssen oder ob Sie akzeptieren können 4, wie in der vierten ungeraden Zahl (oder 3ob es 0-indiziert ist).