马彦宸 • 3年前
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int ma[n][n];
int x=0,y=0,sum=1,zt=0;
ma[0][0]=1;
for(int i=0;i<n*n;i++)
{
zt='y';
if(x>=4||y>=4||x<=0||y<=0)
{
if(zt=='y')zt='x';
if(zt=='x')zt='z';
if(zt=='z')zt='s';
if(zt=='s')zt='y';
}
if(zt=='y')
{
if(ma[x][y+1]==0)ma[x][y++]=sum++;
else zt='x';
}
if(zt=='x')
{
if(ma[x+1][y]==0)ma[x++][y]=sum++;
else zt='z';
}
if(zt=='z')
{
if(ma[x][y-1]==0)ma[x][y--]=sum++;
else zt='s';
}
if(zt=='s')
{
if(ma[x-1][y]==0)ma[x--][y]=sum++;
else zt='y';
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
cout<<ma[i][j]<<" ";
cout<<endl;
}
}
评论: