设行列下标均从 0 开始,n 阶矩阵可认为是有 n 行 n 列的二维数组,设 n 阶矩阵 A 的第 i 行第 j 列的元素记为 Ai−1,j−1。则 n 阶蛇形矩阵 A 定义如下:
- 定义所有 (i,j) 满足 n+i−j=k 的元素 Ai,j 在第 k 条对角线。
- 定义在第 k(1≤k≤2n−1) 条对角线的第 l 个元素是所有在该对角线的元素里行下标 i 第 l 小的元素。
- 若第 k 条对角线上第 l 个元素的下标是 (i,j),则:
- 若 k=1,Ai,j=1。
- 否则,若 k 是偶数:
- 若 l=1,则 Ai,j 的值是第 k−1 条对角线上第一个元素的值再加一。
- 否则,l>1,则 Ai,j 的值是第 k 条对角线上第 l−1 个元素的值再加一。
- 否则,k 是奇数:
- 若 l 是对角线最大序号,则 Ai,j 的值是第 k−1 条对角线上最后一个元素(l 最大元素)的值再加一。
- 否则,则 Ai,j 的值是第 k 条对角线上第 l+1 个元素的值再加一。
例如,n=5,有:
A=⎝⎜⎜⎜⎜⎛15162223257141721246813182025912191341011⎠⎟⎟⎟⎟⎞
给定 n,输出 n 阶蛇形矩阵。