int i=5; 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 int i=6 1 2 3 4 5 6 20 21 22 23 24 7 19 32 33 34 25 8 18 31 36 35 26 9 17 30 29 28 27 10 16 15 14 13 12 11
public static void print(int N) { int a[][] = new int[N][N]; int i = 0, j = 0; int count = 1; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { a[i][j] = 0; } } i = 0; j = 0; for (int k = 0; k <= N / 2; k++) { i = k; j = k; for (i = k; i < N - k; i++) { a[j][i] = count; count++; } i = N - k - 1; for (j = k + 1; j < N - k; j++) { a[j][i] = count; count++; } j = N - k - 1; for (i = N - k - 2; i >= k; i--) { a[j][i] = count; count++; } i = k; for (j = N - k - 2; j >= 1 + k; j--) { a[j][i] = count; count++; } } for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { if (a[i][j]<N) { System.out.print(" "+a[i][j] + " "); } else { System.out.print(a[i][j] + " "); } } System.out.println(); } }