package com.stx.test;
import java.util.Scanner;
public class Test2回旋数组 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
int[][] arr = new int[input + 2][input + 2];// 创建一个在四周加了一圈0的数组
int sum = 0;
for (int out = 1; out < input + 1; out++) {
for (int inter = 1; inter < input + 1; inter++) {
arr[out][inter] = ++sum;
}
}
// 查看创建地数组
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[i][j]);
}
System.out.println();
}
int countAll = 0; // 循环总计数
int a = 1, b = 1; // 坐标
while (countAll != input * input) {
// System.out.println(a + "," + b);
System.out.println(arr[a][b]);
arr[a][b] = 0;
countAll++;
if (arr[a][b + 1] != 0) {// 向右
b++;
} else if (arr[a + 1][b] != 0) {// 向下
a++;
} else if (arr[a][b - 1] != 0) {// 向左
b--;
} else {
a--;// 向上
}
}
}
}
主要通过在周围加入一圈的0作为判断条件