蛇形填数
时间限制:
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
/*
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(input.hasNext()){
int n = input.nextInt();
int [][]arr = new int [n][n];
int e=0,i=0,j=n-1;
while(e != n*n){
for(j=j,i=i; i<n&&arr[i][j]==0; i++){
arr[i][j] = ++e;
}
i--;
j--;
for(j=j; j>=0&&arr[i][j]==0; j--){
arr[i][j] = ++e;
}
j++;
i--;
for(i=i; i>=0&&arr[i][j]==0; i--){
arr[i][j] = ++e;
}
i++;
j++;
for(j=j; j<n&&arr[i][j]==0; j++){
arr[i][j] = ++e;
}
j--;
i++;
}
for(i=0; i<n; i++){
for(j=0; j<n; j++){
System.out.print(arr[i][j]+" ");
// System.out.printf("%-4d",arr[i][j]);
}
System.out.println();
}
}
}
}