PAT数组-13. 螺旋方阵(20)
来源:互联网 发布:禅道数据库配置文件 编辑:程序博客网 时间:2024/05/22 10:38
数组-13. 螺旋方阵(20)
时间限制
400 ms
内存限制
32000 kB
代码长度限制
8000 B
判题程序
Standard
所谓“螺旋方阵”,是指对任意给定的N,将1到N*N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入NxN的方阵里。本题要求构造这样的螺旋方阵。
输入格式:
输入在一行中给出一个正整数N(<10)。
输出格式:
输出NxN的螺旋方阵。每行N个数字,每个数字占3位。
输入样例:5输出样例:
1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9
注释的代码是本人写的程序有点复杂, 第二种是参考网上的代码,比较好
#include<stdio.h>#define SIZE 10/*int main(){int a[SIZE][SIZE];int recycleNum; //循环次数int N,i,s,x,z,y; //s:上 x:下 z:左 y:右scanf("%d",&N);if(N%2==0)recycleNum=N/2;elserecycleNum=(N+1)/2;int num=0;for(i=0;i<recycleNum;i++) //循环recycleNum次{for(s=0;s<N-i*2;s++) //上边: 从左往右 ,遍历N-i*2次{num++;a[i][i+s]=num;//printf("a[%d][%d]:%d\n",i,i+s,num);} //最右边的坐标是(i,i+s-1)for(y=0;y<N-i*2-1;y++) //右边:从上往下,遍历N-i*2-1次{num++;a[i+1+y][i+s-1]=num;//printf("a[%d][%d]:%d\n",i+1+y,i+s-1,num);}//最下边的坐标是(i+y,i+s-1)for(x=0;x<N-i*2-1;x++) //下边: 从右往左,遍历N-i*2-1次{num++;a[i+y][i+s-2-x]=num;//printf("a[%d][%d]:%d\n",i+y,i+s-2-x,num);}//最左边的坐标是(i+y,i+s-1+x)for(z=0;z<N-i*2-2;z++) //左边: 从下往上,遍历N-i*2-2次{num++;a[i+y-1-z][i+s-1-x]=num;//printf("a[%d][%d]:%d\n",i+y-1-z,i+s-1-x,num);}//最左边的坐标是(i+y,i+s-1+x)}for(i=0;i<N;i++){for(s=0;s<N;s++){printf("%3d",a[i][s]);}printf("\n");}return 0;}*/int main(){int a[SIZE][SIZE]={0};int N;scanf("%d",&N);//每条边的下标在x,y上的增量int dx[]={0,1,0,-1};int dy[]={1,0,-1,0};int x=0,y=0,nx,ny,i,k=0; //k用来表示边,k=0,1,2,3 分别代表上,右,下,左for(i=0;i<N*N;i++){a[x][y]=i+1;nx=x+dx[k]; //下一个坐标的位置ny=y+dy[k];if(nx<0 || nx==N || ny<0 || ny==N || a[nx][ny]!=0) //下标越界或下标上已经赋值,转变方向{k=(k+1)%4;nx=x+dx[k];ny=y+dy[k];}x=nx;y=ny;}int j;for(i=0;i<N;i++){for(j=0;j<N;j++){printf("%3d",a[i][j]);}printf("\n");}return 0;}
0 0
- PAT数组-13. 螺旋方阵(20)
- 数组-13. 螺旋方阵(20)
- 数组-13. 螺旋方阵(20)
- 数组-13. 螺旋方阵(20)
- 数组-13. 螺旋方阵(20)
- 数组-13. 螺旋方阵(20)
- 数组-13. 螺旋方阵
- PAT螺旋方阵
- 螺旋方阵(20)
- 螺旋方阵
- 螺旋方阵
- 螺旋方阵
- 螺旋方阵
- 螺旋方阵
- 螺旋方阵
- 螺旋方阵
- 螺旋方阵
- 螺旋方阵
- 君益的开发板
- POJ 1511 Invitation Cards SPFA算法题解
- aaa
- 前缀树
- poj 2342 树状DP
- PAT数组-13. 螺旋方阵(20)
- android按钮使用shape美化
- Handler与回调
- OD过程中遇到的小问题
- 对象序列化
- c++ 使用mat文件问题-配置
- oracle 嵌套查询(给我自己看的)
- OK335XD开发板挂载文件系统
- HDU 1754 线段树