代码如下:
#include<cstdio>
using namespace std;
int a[13][13]={};
int main(){
ios::sync_with_stdio(0);
ios_base::sync_with_stdio(0);
int n,i,j,x=1,y=2,sum=1,lx=1,ly=1;
a[1][1]=1;
scanf("%d",&n);
int m=n*n,k=n;
while(sum<=m){
if(x<n&&y<n) a[x][y]=a[lx][ly]+1,lx=x,ly=y,y++,sum++;
else if(x<n&&y==n) a[x][y]=a[lx][ly]+1,lx=x,ly=y,x++,sum++;
else if(x==n&&y==n) a[x][y]=a[lx][ly]+1,lx=x,ly=y,y--,sum++;
else if(y==1&&x==n) a[x][y]=a[lx][ly+1],lx=x,ly=y,x--,sum++;
else if(a[x-1][y]!=0) a[x][y]=a[lx][ly],lx=1,ly=1,y++,sum++,n--;
}
for(i=1;i<=k;i++){
for(j=1;j<=k;j++){
printf("%3d ",a[i][j]);
}
printf("\n");
}
return 0;
}
全部TLE