1 #include<bits/stdc++.h>
2 using namespace std;
3 int main(){
4 int n;
5 cin>>n;
6 int a[n][n],i=0,j=n-1,t=1;
7 memset(a,0,sizeof(a));
8 a[i][j]=1;
9 while(t!=n*n){
10 while(a[i+1][j]==0&&i+1<n){
11 a[++i][j]=++t;
12 }
13 while(a[i][j-1]==0&&j-1>=0){
14 a[i][--j]=++t;
15 }
16 while(a[i-1][j]==0&&i-1>=0){
17 a[--i][j]=++t;
18 }
19 while(a[i][j+1]==0&&j+1<n){
20 a[i][++j]=++t;
21 }
22 }
23 for(int i=0;i<n;i++){
24 for(int j=0;j<n;j++){
25 cout<<a[i][j]<<" ";
26 }
27 cout<<endl;
28 }
29 }
1 #include <iostream>
2 using namespace std;
3 int main(){
4 int n;
5 int f=0;
6 int i=1;
7 cin>>n;
8 int x=n,y=1;
9 int a[n+1][n+1]={0};
10 while(i!=n*n+1){
11 a[y][x]=i;
12 if(f==0){//下↓
13 y+=1;
14 }else if(f==1){//←
15 x-=1;
16 }else if(f==2){//↑
17 y-=1;
18 }else if(f==3){//→
19 x+=1;
20 }
21 if(((x==n && y==n) || (x==1 && y==n) || (x==1 && y==1) || (x==n && y==1))){
22 f++;
23 f%=4;
24 }else if((f==0 && a[y+1][x]!=0) || (f==1 && a[y][x-1]!=0) || (f==2 && a[y-1][x]!=0) || (f==3 && a[y][x+1]!=0)){
25 f++;
26 f%=4;
27 }
28 i++;
29 }
30 for(int i=1;i<=n;i++){
31 for(int j=1;j<=n;j++){
32 cout<<a[i][j]<<" ";
33 }
34 cout<<endl;
35 }
36 return 0;
37
38 }