Мы можем свернуть натуральные числа в прямоугольную спираль:
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
Но теперь, когда они расположены на прямоугольной сетке, мы можем разматывать спираль в другом порядке, например, по часовой стрелке, начиная с севера:
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
Результирующая последовательность явно является перестановкой натуральных чисел:
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, ...
Ваша задача - вычислить эту последовательность. ( OEIS A020703 , но предупреждение о спойлере: оно содержит другое интересное определение и несколько формул, которые вы, возможно, захотите выяснить самостоятельно.)
Интересный факт: все 8 возможных заказов на разматывание имеют свои собственные записи OEIS.
Соревнование
Если задано положительное целое число n
, вернуть n
элемент вышеупомянутой последовательности.
Вы можете написать программу или функцию, принимая ввод через STDIN (или ближайшую альтернативу), аргумент командной строки или аргумент функции и выводя результат через STDOUT (или ближайшую альтернативу), возвращаемое значение функции или параметр функции (out).
Применяются стандартные правила игры в гольф .
Тестовые случаи
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
Полный список до и включая n = 11131
смотрите b-файл на OEIS .