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();
}
}
}
结果: