在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≤8。
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] m = new int[n][n];
Rotating(m,n);
}
public static void Rotating(int[][] m, int num) {
// 向方阵中填写数值
int k = 1; // 将要填写的数值
for (int i = 0; i <= num / 2; i++) { // 将要填写的圈数
for (int j = i; j < num - i; j++) { // 右侧列方向
m[j][num - i - 1] = k++;
}
for (int j = num - i - 2; j >= i; j--) { // 下方行方向
m[num - i - 1][j] = k++;
}
for (int j = num - i - 2; j > i; j--) { // 左侧列方向
m[j][i] = k++;
}
for (int j = i; j < num - i-1; j++) { // 上方行方向
m[i][j] = k++;
}
}
for(int i=0;i<num;i++){ //print the matrix
for(int j=0;j<num;j++){
System.out.print(String.format("%4d",m[i][j]));
}
System.out.println();
}
}