九宫格算法
public class Demo4 { public static void main(String[] args) { int n = 5; // 0:向右,1:向下,2:向左,3:向上 int direction = 0; // 行,列 int row = 0, col = 0; int num = 0; int[] array = new int[n * n]; while (array[row * n + col] == 0) { num++; array[row * n + col] = num; switch (direction) { case 0: col++; break; case 1: row++; break; case 2: col--; break; case 3: row--; break; } if (row == n || col == n || row == -1 || col == -1 || array[row * n + col] != 0) { direction++; if (direction == 4) direction = 0; switch (direction) { case 0: row++; col++; break; case 1: row++; col--; break; case 2: row--; col--; break; case 3: row--; col++; break; } } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.printf("%-3s", array[i * n + j]); } System.out.println(); } } }