蛇形填數
時間限制: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++;
}
}
}