Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
91750 sh25_shenpy 数字正方形 C++ 通过 2 MS 268 KB 1853 2026-06-15 19:37:25

Tests(1/1):


#include <iostream> #include <vector> #include <iomanip> using namespace std; // 生成N*N的螺旋矩阵 void generateSpiralMatrix(int n, vector<vector<int>>& matrix) { if (n <= 0) return; // 初始化矩阵 matrix.assign(n, vector<int>(n, 0)); int top = 0, bottom = n - 1; int left = 0, right = n - 1; int num = 1; while (top <= bottom && left <= right) { // 从左到右填充上边 for (int i = left; i <= right; ++i) { matrix[top][i] = num++; } top++; // 从上到下填充右边 for (int i = top; i <= bottom; ++i) { matrix[i][right] = num++; } right--; // 从右到左填充下边 if (top <= bottom) { for (int i = right; i >= left; --i) { matrix[bottom][i] = num++; } bottom--; } // 从下到上填充左边 if (left <= right) { for (int i = bottom; i >= top; --i) { matrix[i][left] = num++; } left++; } } } // 打印矩阵 void printMatrix(const vector<vector<int>>& matrix, int n) { for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (j > 0) cout << " "; cout << matrix[i][j]; } cout << endl; } } int main() { // 优化IO操作 ios::sync_with_stdio(false); cin.tie(NULL); int n; // 处理多组测试数据 while (cin >> n) { if (n < 1 || n > 10) continue; // 根据题目约束忽略非法输入 vector<vector<int>> matrix; generateSpiralMatrix(n, matrix); printMatrix(matrix, n); } return 0; }


测评信息: