Ausgehend von der Spirale der Größe S
und der Stufe N
geben Sie die "quadratische" S*S
Spirale mit N
Sternchen aus, die vom äußeren zum inneren Radius im Uhrzeigersinn aufgebaut sind.
Testfälle (Beispiele) unten.
Eingang:
4 3
Ausgabe:
***
Eingang:
4 6
Ausgabe:
**** * *
Eingang:
4 11
Ausgabe:
**** * * * ****
Eingang:
6 18
Ausgabe:
****** * * * * * * ******
Eingang:
6 22
Ausgabe:
****** *** * * * * * * * ******
Eingang:
6 27
Ausgabe:
****** ****** * ** * ** * ** ******
Eingang:
1 1
Ausgabe:
*
Es ist nicht notwendig, die Fälle zu behandeln, wenn:
vorausgesetzt,
N
Sternchen können nicht in die Spirale gegebenerS*S
Dimensionen "passen" .entweder
N
oderS
ist Null.
Die Herausforderung ist Code-Golf, kürzeste Bytes beantworten Gewinne, alle Sprachen können verwendet werden.
Ihre Ausgabe kann beliebig viele nachgestellte (aber nicht führende) Leerzeichen / Zeilenumbrüche enthalten.
S
Größe (oder zumindest den Durchmesser ) als den Radius nennenAntworten:
MATL ,
1716 BytesProbieren Sie es online!
Erklärung (mit Beispiel)
Betrachten Sie Eingaben
4
und11
als Beispiel.quelle
Stax , 19 Bytes
Führen Sie es aus und debuggen Sie es
Zunächst wird eine Zeichenfolge erstellt, in der alle Zeichen des Ergebnisses mit allen Sternchen linksbündig angeordnet sind. Dann nimmt es immer größere Schnitte vom Ende der Zeichenkette und "wickelt" sie um ein Gitter, während es das Gitter dreht.
Hier ist das gleiche Programm, entpackt, ungolfed und kommentiert.
Führen Sie es aus und debuggen Sie es
quelle
Python 2 , 117 Bytes
Probieren Sie es online!
quelle
APL (Dyalog) , 65 Bytes
Probieren Sie es online!
Der Code für die Spiralmatrix stammt aus einer anderen Antwort von mir .
quelle
N
ungerade ist :)PHP, 118 Bytes
meine lösung für die alphabet spirale angepasst und golfen .
Laufen Sie mit
php -nr '<code>' <S> <N>
oder versuchen Sie es online .quelle
Python 2 , 150 Bytes
Probieren Sie es online!
quelle
Kohle , 34 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Eingabe
N
.Die Längen der Spiralarme (ohne Ecken) sind
S-1
,S-1
,S-1
,S-2
,S-2
,S-3
, ...,3
,2
,2
,1
,1
,1
. Dies wird gebildet, indem mit dem Bereich von0
bis, aber ausschließlich begonnen wird2S
, die 0 in 1 geändert wird, diese umgekehrt wird, jedem Element nach der ersten eine 1 hinzugefügt wird und schließlich alle Elemente durch 2 ganzzahlig dividiert werden. Diese Liste wird dann durchlaufen.Wenn weniger Sterne zum Zeichnen übrig sind als die Länge des nächsten Arms, reduzieren Sie den Arm auf diese Länge.
Zeichnen Sie die entsprechende Anzahl von Sternen.
Von der Anzahl der verbleibenden Sterne abziehen.
Zeichnungsrichtung um 90 ° im Uhrzeigersinn drehen.
quelle
J
6056 Bytes-4 Bytes durch Ändern des Erstellungsprozesses für die Spirale, sodass ein Subtrahieren von y ^ 2 nicht erforderlich war
Probieren Sie es online!
Erklärung folgt in
Kürze.Erläuterung:
Beispiele:
quelle
Kotlin ,
361355353334 Bytes6 Bytes gespart dank Jonathan
2 Bytes gespart als
19 Bytes beim Umschalten auf Lambda und Verfolgung der Außenkanten
Probieren Sie es online!
quelle
==' '
aber, dass er durch ersetzt werden kann<'*'
. Auchd==0
mitd<1
undd==3
mitd>2
. Dies scheinen ziemlich grundlegende Golfarten zu sein, also gibt es wahrscheinlich auch andere!Java 10,
284282281263 BytesEine lustige Herausforderung!
Probieren Sie es hier online aus .
Vielen Dank an Kevin Cruijssen für das Golfen mit 18 Bytes.
Ungolfed-Version:
quelle
var b
hinzugefügt wird , so dass Sie nur das zu tun haben,x>0?i<u:i>l
undy>0?j<u:j>l
je einmal statt zweimal pro.JavaScript (Node.js) ,
167164163 Bytes,
statt map (1 byte)Probieren Sie es online!
quelle
return a.join` `.split`,`.join``
..split
, `.join`` gibt die Spirale nicht" schön "aus (mit neuen Zeilen), daher denke ich, dass es ein Problem ist