AcWing 754. 平方矩阵 II
原题链接
简单
作者:
徐悦然护体
,
2021-01-21 10:34:11
,
所有人可见
,
阅读 384
核心代码就三行 (枚举) $O(n^2)$
从右下角开始,每次写一行加一列
5
4
3
2
5 4 3 2 1
4 5
3 4
2 3
4 3 2 1 2
5 4 3 2 1
3 4 5
2 3 4
3 2 1 2 3
4 3 2 1 2
5 4 3 2 1
(省略)
1 2 3 4 5
2 1 2 3 4
3 2 1 2 3
4 3 2 1 2
5 4 3 2 1
C++ 代码
#include <bits/stdc++.h>
using namespace std;
const int N = 105;
int arr[N][N];
int n;
int main(void)
{
while(cin >> n){
if(n == 0)
break;
for(int i = n ; i >= 1; i--) { //从第n行开始
for(int j = 1; j <= i; j++) //每一行/列 都是 1 - i
arr[j][i] = arr[i][j] = i - j + 1; //行列对称位置同时写入
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++)
cout << arr[i][j] <<" ";
cout << endl;
}
cout << endl;
}
return 0;
}