【欧拉计划】28. Number spiral diagonals
(本题取 $n=1000$)
【思路】首先可以发现 $1$ 位于矩阵正中央,即 $(501,501)$ 处。
通过找规律可以发现,每走一步需要顺时针变换一次方向,但是如果已经走过或越界则需再次变换。这样,我们就可以遍历整个矩阵,从而在 $\mathcal O(n^2)$ 的效率下求出对角线的元素之和:
1 |
|
【欧拉计划】28. Number spiral diagonals
(本题取 $n=1000$)
【思路】首先可以发现 $1$ 位于矩阵正中央,即 $(501,501)$ 处。
通过找规律可以发现,每走一步需要顺时针变换一次方向,但是如果已经走过或越界则需再次变换。这样,我们就可以遍历整个矩阵,从而在 $\mathcal O(n^2)$ 的效率下求出对角线的元素之和:
1 |
|
【欧拉计划】28. Number spiral diagonals