C/C++实现螺旋方阵算法
2014-09-19 09:58
387 查看
记录自己写的题,共同进步,大神请无视Description
下面是一个5*5螺旋方阵。你的任务是输出按逆时针方向旋进的n*n螺旋方阵。
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
Input
输入有多行,每行有1个整数n,(1<=n<=100)。
Output
对输入文件中的每个整数n,按n行n列的方式输出n*n螺旋方阵,行尾无空格,同一行上两个数之间空一格。两个螺旋方阵之间空一行。<pre name="code" class="cpp">#include<iostream> #include<cstring> #include<cstdio> using namespace std; int main () { int n; int a[100][100]; int x,y,tot=0; while(scanf("%d",&n)==1) { memset(a,0,sizeof(a)); tot=a[x=0][y=0]=1; while(tot<n*n) { while(y+1<n&&!a[y+1][x]) { a[++y][x]=++tot; } while(x+1<n&&!a[y][x+1]) { a[y][++x]=++tot; } while(y-1>=0&&!a[y-1][x]) { a[--y][x]=++tot; } while(x-1>=0&&!a[y][x-1]) { a[y][--x]=++tot; } } for(y=0;y<n;y++) { for(x=0;x<n-1;x++) { printf("%d ",a[y][x]); } printf("%d\n",a[y][n-1]); } printf("\n"); } }
相关文章推荐
- 数字螺旋方阵C++实现
- java实现螺旋方阵或者折叠方阵的算法
- 用C语言实现顺时针螺旋方阵的打印(含算法)
- 一类螺旋方阵问题的算法分析与实现
- 向方阵写入螺旋数——C++实现
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- 内存管理:算法及其c/c++实现 翻译五
- 内存管理:算法及其c/c++实现 翻译六
- 内存管理:算法及其c/c++实现 翻译二
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- 内存管理:算法及其c/c++实现 翻译一
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- 用C++实现warshall的算法
- 算法(c++)实现
- 快速傅里叶变换(FFT)算法C++实现代码
- 关于电梯算法的C++实现(zt)
- LCS 算法之C++实现
- C++递归实现欧几里德(Euclid)算法