Run ID:8042

提交时间:2025-06-07 10:45:08

#include<bits/stdc++.h> using namespace std; int main(){ int a[21][21]; int n,cnt=1; cin>>n; int k= n%2==1 ? n/2+1 : n/2; //a?b:c;//三目运算符 a条件?执行b :执行c for(int z=1;z<=k;z++){//第z层,最多k层 //右 for(int j=z;j<=n-z+1;j++){//起点,终点 a[z][j]=cnt++;//行号==层号 } //下 for(int i=z+1;i<=n-z+1;i++){//起点z+1行,终点 a[i][n-z+1]=cnt++; } //左 for(int j=n-z;j>=z;j--){ a[n-z+1][j]=cnt++; } //上 for(int i=n-z;i>=z+1;i--){ a[i][z]=cnt++; } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) cout<<setw(4)<<a[i][j]; cout<<endl; } return 0; }