蛇形填数
时间限制:
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> #define Max 100 int record[Max][Max]; void snake (int n); int main (){ int i, j, n; scanf("%d", &n); snake(n); for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { printf("%d ", record[i][j]); } printf("\n"); } return 0; } void snake(int n){ int i = -1, j = n - 1, k; int num = 1; while (1) { for(k = 0; k < n; k++) { i++; record[i][j] = num; num++; } n -= 1; if(n <= 0) return ; for(k = 0; k < n; k++){ j--; record[i][j] = num; num++; } for(k = 0; k < n; k++){ i --; record[i][j] = num; num++; } n -= 1; if(n <= 0) return; for(k = 0; k < n; k++) { j++; record[i][j] = num; num++; } } }