public class HelixMatrix {
/**
* 螺旋矩陣
*
* by o(∩_∩)o...雪
*/
public static void main(String[] args) {
int n = 7; //矩陣維數
int num = 1; //計數
int a[][] = new int[n][n];
for(int k=0;k<n;k++) //每圈
{
for(int i=k;i<n-1-k;i++) //第k圈的前半圈
{
a[i][k] = num++; //第k圈的第一條邊
a[n-1-k][i] = num+n-2-2*k; //第k圈的第二條邊
}
num+=(n-1-2*k); //第k圈的後半圈的第一個數
for(int i=n-1-k;i>k;i--) //第k圈的後半圈
{
a[i][n-1-k] = num++; //第k圈的第三條邊
a[k][i] = num+n-2-2*k; //第k圈的第四條邊
}
num+=(n-1-2*k); //第k圈的前半圈的第一個數
}
if(n%2==1) //最中間的數字
{
a[n/2][n/2]=n*n;
}
for(int i=0;i<n;i++){ //數組輸出
for(int j=0;j<n;j++)
System.out.print(a[i][j]+" ");
System.out.println();
}
}
}
結果: