构造n * m的螺旋矩阵
讲解:https://wenku.baidu.com/view/7253dc78a26925c52cc5bff4.htm
#include <bits/stdc++.h>
using namespace std;
int getnum(int n, int m, int x, int y) {
int lev = min(min(x, n - 1 - x), min(y, m - 1 - y));
int d = x + y - lev * 2;
int st = 2 * lev * (n + m - 2 * lev) + 1;
if(x == lev || y == m - 1 - lev || (m < n && lev * 2 + 1 == m))
return st + d;
int nt = st + (n + m - 4 * lev - 2) * 2;
return nt - d;
}
int main() {
int n, m;
cin >> n >> m;
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
cout << getnum(n, m, i, j) << " ";
}
cout << endl;
}
return 0;
}