Wir können die natürlichen Zahlen in einer rechteckigen Spirale aufrollen:
17--16--15--14--13
| |
18 5---4---3 12
| | | |
19 6 1---2 11
| | |
20 7---8---9--10
|
21--22--23--24--25
Aber jetzt, wo wir sie auf einem rechteckigen Gitter haben, können wir die Spirale in einer anderen Reihenfolge abwickeln, z. B. im Uhrzeigersinn, beginnend in Richtung Norden:
17 16--15--14--13
| | |
18 5 4---3 12
| | | | |
19 6 1 2 11
| | | |
20 7---8---9 10
| |
21--22--23--24--25
Die resultierende Sequenz ist eindeutig eine Permutation der natürlichen Zahlen:
1, 4, 3, 2, 9, 8, 7, 6, 5, 16, 15, 14, 13, 12, 11, 10, 25, 24, 23, 22, 21, 20, 19, 18, 17, ...
Ihre Aufgabe ist es, diese Sequenz zu berechnen. ( OEIS A020703 , aber Spoiler-Warnung: Es enthält eine weitere interessante Definition und mehrere Formeln, die Sie vielleicht selbst herausfinden möchten.)
Tolle Tatsache: Alle 8 möglichen Abwicklungsaufträge haben einen eigenen OEIS-Eintrag.
Die Herausforderung
Bei einer positiven Ganzzahl n
geben Sie das n
th-Element der obigen Sequenz zurück.
Sie können ein Programm oder eine Funktion schreiben, indem Sie eine Eingabe über STDIN (oder die nächstgelegene Alternative), ein Befehlszeilenargument oder ein Funktionsargument vornehmen und das Ergebnis über STDOUT (oder die nächstgelegene Alternative), einen Funktionsrückgabewert oder einen Funktionsparameter (out) ausgeben.
Es gelten die Standardregeln für Code-Golf .
Testfälle
1 1
2 4
3 3
4 2
5 9
6 8
7 7
8 6
9 5
100 82
111 111
633 669
1000 986
5000 4942
9802 10000
10000 9802
Eine vollständige Liste bis einschließlich finden n = 11131
Sie in der B-Datei zu OEIS .