【算法】螺旋方阵 上交OJ1021
输入格式:
输入在一行中给出一个正整数N(<10)。
输出格式:
输出N×N的螺旋方阵。每行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
时间限制
400 ms
内存限制
32000 kB
代码长度限制
8000 B
判题程序
Standard
#include <stdio.h> main() { int c=1,x=0, y=0,n, a[10][10]={0}; scanf("%d", &n); a[x][y] = 1; while(n*n!=c) { while(y+1<n && !a[x][y+1] ) //从左到右 a[x][++y] = ++c; while(x+1<n && !a[x+1][y]) // 从上到下 a[++x][y] = ++c; while(y-1>=0 && !a[x][y-1]) //从右到左 a[x][--y] = ++c; while(x-1>=0 && !a[x-1][y]) //从下到上 a[--x][y] = ++c; } for(x=0;x<n;x++) { for(y=0;y<n;y++) { printf("%3d", a[x][y]); } printf("\n"); } }