#include<stdio.h>
#include<string.h>
int a[10][10];
int main(){
int n,m=1;
memset(a,0,sizeof(a));
scanf("%d",&n);
int x=0,y=n-1; //起点
a[x][y]=1;
while(m<n*n){
while(x+1<n && !a[x+1][y]) a[++x][y]=++m; //向下
while(y-1>=0 && !a[x][y-1]) a[x][--y]=++m; //向左
while(x-1>=0 && !a[x-1][y]) a[--x][y]=++m; //向上
while(y+1<n && !a[x][y+1]) a[x][++y]=++m; //向右
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(j<n-1)
printf("%2d ",a[i][j]);
else
printf("%2d\n",a[i][j]);
}
}
return 0;
}
【算法竞赛入门经典】 程序 3-3 蛇形填数
最新推荐文章于 2021-01-06 19:47:34 发布