螺旋矩陣是指一個呈螺旋狀的矩陣,它的數字由第一行開始到右邊不斷變大,向下變大,向左變大,向上變大,如此循環。如下圖
可知N=4的螺旋矩陣由兩個螺旋矩陣框組成,當N= n時,矩陣框為(n+1)/2 個,從外至内一個框一個框輸出,每個框又分一條邊一條邊輸出。
public class Square_spiral {
public static void main(String[] args) {
int[][] arr = creatSquareSpiral(4);
for(int i = 0;i < arr.length;i ++){
for(int j = 0;j < arr[i].length;j ++)
System.out.print(arr[i][j] + " ");
System.out.println();
}
}
public static int[][] creatSquareSpiral(int n){
int[][] arr = new int[n][n];
int i,j,k = 1;
for(i = 0;i < (n+1)/2;i ++){
for(j = i;j < n - i;j ++)
arr[i][j] = k ++;
for (j = i + 1;j < n - i;j ++)
arr[j][n-i-1] = k ++;
for (j = n - i - 2;j >= i;j --)
arr[n-i-1][j] = k ++;
for (j = n - i - 2;j >= i + 1;j --)
arr[j][i] = k ++;
}
return arr;
}
}