import java.util.Arrays;
/*
* 8、写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:
* 1 2 3 4
* 12 13 14 5
* 11 16 15 6
* 10 9 8 7
*/
public class Test8 {
public static void main(String[] args) {
printMath(60);
}
public static void printMath(int n)
{
int[][] arr = new int[n][n];
int x = 0;
int y = 0;
int max = arr.length-1;
int min = 0;
int num = 1;
while (min<=max)
{
//right
while (y<max)
{
arr[x][y++] = num++;
}
//down
while (x<max)
{
arr[x++][y] = num++;
}
//left
while (y>min)
{
arr[x][y--] = num++;
}
//up
while (x>min)
{
arr[x--][y] = num++;
}
//如果是奇数,可能赋值不上
if (min == max)
{
arr[x][y] = num;
}
max--;
min++;
x++;
y++;
}
for (int i=0;i<arr.length;i++)
{
for (int j=0;j<arr.length;j++)
{
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}
|
|