import java.util.Scanner;
/**
* 注意一个圈中二维数组中i,j的变化规律即可
* 1 2
*
* 4 3
* 1-->2:i不变,j由0增到1
* 2-->3:i由0增到1,j不变
* 3-->4:i不变,j由1减到0
* 4-->1:i由1减到0,j不变
* @author zhangli
*
*/
public class LuoJuTest {
public static void main(String args[]) {
System.out.println("请输入矩阵长度:");
int n = 5;
try {
n = new Scanner(System.in).nextInt();
}
catch (Exception e)
{
}
int a[][] = new int[n][n];
int value = 1;
int i=0,j=0;
for (int m=0;m<n/2+n%2;m++)
{
for(j=m,i=m;j<(n-m);j++)
{
a[i][j]=value++;
}
for(j--,i++;i<(n-m);i++)
{
a[i][j]=value++;
}
for(j--,i--;j>=m;j--)
{
a[i][j]=value++;
}
for(i--,j++;i>m;i--)
{
a[i][j]=value++;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
}
原文:https://www.cnblogs.com/alichengxuyuan/p/12578008.html