nyoj33蛇形填数
2014-11-01 20:19
288 查看
蛇形填数
时间限制:3000 ms | 内存限制:65535 KB难度:3
描述在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
输入直接输入方陈的维数,即n的值。(n<=100)
输出输出结果是蛇形方陈。
样例输入
3
样例输出
7 8 1 6 9 2 5 4 3
#include <stdio.h> int main() { int n; scanf("%d", &n); int i, j, num, a[101][101] = {0}; num = 1; i = 0; j = n - 1; a[i][j] = num; while(num < n * n) { while(i < n - 1 && a[i + 1][j] == 0) a[++i][j] = ++num; while(j > 0 && a[i][j - 1] == 0) a[i][--j] = ++num; while(i > 0 && a[i - 1][j] == 0) a[--i][j] = ++num; while(j < n - 1 && a[i][j + 1] == 0) a[i][++j] = ++num; } for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { printf("%d ", a[i][j]); } printf("\n"); } return 0; }
相关文章推荐