Inspiriert von Display eine Kette kleiner Berge mit einer ungeraden Zahl oben drauf! von @sygmei .
Warum eine Bergkette, wenn Sie eine massive haben können?
Erstellen Sie ein Programm, das eine eingegebene Nummer verwendet und einen Berg mit jeder ungeraden Nummer bis zur eingegebenen Nummer druckt.
(Wo "Südwesten" bedeutet directly below and to the left
und "Südosten" bedeutet directly below and to the right
)
Jede Zahl wird einen /
Südwesten und einen \
Südosten haben. Es beginnt 1
oben und die nächste Nummer geht südwestlich von a /
oder südöstlich von a \
. Die nächste Zahl steht in der Zeile, die am nächsten und am weitesten links liegt.
Bei einer mehrstelligen Nummer muss nur die erste Ziffer an der richtigen Stelle mit den anderen Ziffern direkt danach stehen, und nur die erste Ziffer sollte diese haben \
und /
daraus hervorgehen.
Der Berg bis 1 oder 2 ist nur:
1
/ \
Ein Berg bis zu 3 oder 4 ist nur:
1
/ \
3
/ \
Für 25 oder 26:
1
/ \
3 5
/ \ / \
7 9 11
/ \ / \ / \
13 15 17 19
/ \ / \ / \ / \
21 23 25
/ \ / \ / \
Letzte zwei Zeilen, in denen die Eingabe 121 ist:
111 113 115 117 119 121
/ \ / \ / \ / \ / \ / \
Und die letzten beiden Zeilen, in denen die Eingabe 1019 ist:
993 995 997 999 1001100310051007100910111013101510171019
/ \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \
Sie können davon ausgehen, dass die Eingabe größer als 0 und kleiner als 10001 ist (exklusiv).
Nachgestellte Leerzeichen sind in Ordnung, und zusätzliche führende Leerzeichen sind in Ordnung, solange sie in allen Zeilen gleich sind.
Dies ist Code-Golf , also gewinnt das kürzeste Programm in Bytes.
Eine ungolfed Antwort darauf finden Sie online hier (In Python auf repl.it), wenn Sie weitere Testfälle benötigen.
Antworten:
05AB1E ,
54524746 BytesProbieren Sie es online aus!
Erläuterung
Ich hätte 5 Bytes sparen können,
ÅɹL£D€g__ÏRv"/ \ "yg×N·©úˆy4jJðÛ®>úˆ}¯R»
wenn ich nur diesen Bugfix für j gepusht hätte, den ich vor einigen Wochen geschrieben habe : /quelle
Stapel, 335 Bytes
quelle
cmd /Q /C file.bat
3 zusätzliche Bytes zähle , aber es ist immer noch besser als@echo off
. Sie sollten dies in die Frage mit den Stapeltipps eintragen.Python 2,
160149143 BytesVielen Dank an TFeld für das Speichern von 11 Bytes und Artyer für das Speichern von 6 Bytes
quelle
i=len(y)
undfor l in y:print' '*i+l;i-=1
stattfor i,l in enumerate(y):print(len(y)-i-1)*' '+l
für -10 Bytes\\
,\
da es vor einem Leerzeichen istwhile y:print' '*-~len(y)+y.pop(0)
. Es spart 3 Bytes.%-4d
es bis 4 begründen.Perl, 134
133 Bytes + 1 für
-p
OptionFormatierte Version (Original-Golfversion verwendet echte "neue Linien" anstelle von \ n)
quelle
Bash, 425 Bytes
Formatiert:
quelle