#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>> f(int n) {
vector<vector<int>> matrix(n, vector<int>(n));
int num = 1;
int top = 0, bottom = n - 1, left = 0, right = n - 1;
while (num <= n * n) {
// 从左到右填充上边
for (int i = left; i <= right; ++i) {
matrix[top][i] = num++;
}
++top;
// 从上到下填充右边
for (int i = top; i <= bottom; ++i) {
matrix[i][right] = num++;
}
--right;
// 从右到左填充下边
for (int i = right; i >= left; --i) {
matrix[bottom][i] = num++;
}
--bottom;
// 从下到上填充左边
for (int i = bottom; i >= top; --i) {
matrix[i][left] = num++;
}
++left;
}
return matrix;
}
int main() {
int n;
cin >> n;
vector<vector<int>> result = f(n);
// 输出结果
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cout << result[i][j];
if (j < n - 1) {
cout << " ";
}
}
cout << endl;
}
return 0;
}
4 个赞
这是什么代码?
1 个赞
什么什么代码
4 个赞
你发的,哦忘记说了,此贴已结
1 个赞
thanks for your help @桑铃茜
1 个赞