Run ID:2244

提交时间:2023-12-23 00:27:02

#include <iostream> #include <vector> usng namespace std; void generateMatrix(int N) { std::vector<std::vector<int>>matrix(N, std::vector<int>(N, 0)); int num=1; int row=0,col=0; int layer; if (N%2==0) layer=N/2; else layer=(N+1)/2; for(int i=0;i<layer;++i) { for(col = i; col < N - i; ++col) matrix[i][col] = num++; for(row = i + 1; row < N - i; ++row) matrix[row][N - i - 1] = num++; for(col = N - i - 2; col >= i; --col) matrix[N - i - 1][col] = num++; for(row = N - i - 2; row > i; --row) matrix[row][i] = num++; } for(int i=0;i<N;++i) { for(int j=0;j<N;++j) { cout << matrix[i][j]; if(j<N 1) cout << " "; } if(i<N-1) cout<<endl; } int main() { int n; cin>>n; generateMatrix(n); return 0; }