Schauen Sie sich die folgende Zeichenfolge an. Bemerken Sie ein Muster?
ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL CUM BAZYXWV N EO DP CQ BAZYXWVUTSR
Wie einige vielleicht bemerkt haben, handelt es sich im Grunde genommen um eine Spirale des Alphabets, bei der sich die Abstände zwischen Zeilen / Spalten allmählich um 1 Leerzeichen / Zeilenvorschub erhöhen.
Rigorose Definition
- Lassen Sie uns einen Zähler c haben , der anfangs 0 ist.
- Wir schreiben das erste c + 1 Buchstaben des Alphabets von links nach rechts:
A
. Dann wird von oben nach unten die nächste (c + 1) (C + 2) / 2 Buchstaben (add
B
):AB
.Von links nach rechts das nächste (c + 1) (c + 2) / 2 (addieren
C
):AB C
Und von unten nach oben die nächsten c + 1 Buchstaben (addieren
D
):AB DC
Das Ende des Zyklus erreicht. Erhöhen wir also c (das wird 1). Dann geht es vom ersten Schritt zurück. Der einzige Unterschied besteht darin, dass wir anstelle der ersten c + 1 Buchstaben des Alphabets die nächsten c + 1 Buchstaben verwenden, beginnend mit dem letzten Element dieses Zyklus (
D
in diesem Fall also machen wir weiter mitEFG...
). WennZ
es erreicht ist, geht es zurück vonA
.
Aufgabe
Geben Sie die ersten N Zyklen der Spirale aus, wenn Sie eine Ganzzahl N (positiv für 1-Indizierung oder nicht negativ für 0-Indizierung) haben .
Regeln
Sie können entweder das Kleinbuchstaben- oder das Großbuchstaben-Alphabet verwenden, Ihre Auswahl muss jedoch konsistent sein (verwenden Sie nur eines davon, das Mischen ist nicht zulässig).
Sie können Eingaben und Ausgaben über eine der Standardmethoden in einer beliebigen Programmiersprache vornehmen und dabei beachten, dass diese Lücken standardmäßig verboten sind.
Zulässige Ausgabeformate: Mehrzeilige Zeichenfolge, eine Liste von Zeichenfolgen, die Zeilen darstellen, eine Liste mit mehreren Zeichenlisten, die jeweils eine Zeile darstellen, oder alles andere, was Sie für geeignet halten. Falls Sie das erste Format nicht auswählen, ist es hilfreich, eine hübsche Druckversion Ihres Codes beizufügen.
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes (in jeder Sprache), der die Anforderungen erfüllt!
Testfälle
Die eingegebene Ganzzahl wird durch eine neue Zeile von der entsprechenden Ausgabe getrennt, und die Tests werden durch Bindestriche getrennt. Beachten Sie, dass diese 1-indiziert sind.
1 AB DC -------- 2 ABEF DC G MH LKJI -------- 3 ABEFNOP DC GQ MHR LKJI S DT CU BAZYXWV ------- 4 ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL CUM BAZYXWV N EO DP CQ BAZYXWVUTSR ------- 5 ABEFNOPEFGHFGHIJ DC GQIK MHRJL LKJI SKM DTLN CUMO BAZYXWV NP EOQ DPR CQS BAZYXWVUTSR T RU QV PW OCHSE NMLKJIHGFEDCBAZY ------ 6 ABEFNOPEFGHFGHIJSTUVWX DC GQIKY MHRJLZ LKJI SKMA DTLNB CUMOC BAZYXWV NPD EOQE DPRF CQSG BAZYXWVUTSR TH RUI QVJ PWK OXL NMLKJIHGFEDCBAZY M SN RO QP PQ ODER NMLKJIHGFEDCBAZYXWVUTS