3 条题解
-
1
#include<stdio.h> int main() { int n; scanf("%d",&n); int nn=n*n; int x=1,y=n; int fx=0; int num[101][101]={0}; for(int i=1;i<=nn;i++){ num[x][y]=i; if(fx==0){ //下 if(x+1>n||num[x+1][y]!=0){ //提前预判下一位越界或者碰头 fx=1;//改变方向 y--; } else{ x++; } } else if(fx==1){ //左 if(y-1<1||num[x][y-1]!=0){ fx=2;//改变方向 x--; } else{ y--; } } else if(fx==2){ //上 if(x-1<1||num[x-1][y]!=0){ fx=3;//改变方向 y++; } else{ x--; } } else if(fx==3){ //右 if(num[x][y+1]!=0){ fx=0;//改变方向 x++; } else{ y++; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ printf("%d ",num[i][j]); } printf("\n"); } return 0; }
信息
- ID
- 131
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 542
- 已通过
- 179
- 上传者