Run ID:100761
提交时间:2024-12-12 21:04:19
#include <iostream> #include <vector> using namespace std; void printSpiralMatrix(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 && num <= N * N; ++i) { matrix[top][i] = num++; } top++; // 从上到下填充右列 for (int i = top; i <= bottom && num <= N * N; ++i) { matrix[i][right] = num++; } right--; // 从右到左填充底行 for (int i = right; i >= left && num <= N * N; --i) { matrix[bottom][i] = num++; } bottom--; // 从下到上填充左列 for (int i = bottom; i >= top && num <= N * N; --i) { matrix[i][left] = num++; } left++; } // 打印矩阵 for (int i = 0; i < N; ++i) { for (int j = 0; j < N; ++j) { cout << matrix[i][j] << " "; } cout << endl; } } int main() { int N; cin >> N; printSpiralMatrix(N); return 0; }