我们可以将自然数汇总为矩形螺旋:
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
上述序列的th元素。
您可以编写程序或函数,通过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
请参阅OEIS上的b文件。