import java.util.*;
/*从键盘输入一个整数(1~20)
*则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。
*/
public class DemoNum {
int number=1;
int a[][]=new int[20][20];
public void doit(int m,int i1,int i2)
{
if(m<0) return;
if(m==1)
a[i1][i2]=number;
else
{
for(int i=0;i<m;i++)//top
a[i1][i2+i]=number++;
for(int i=0;i<m-1;i++)//right
a[i+i1+1][m+i2-1]=number++;
for(int i=0;i<m-1;i++)//bottom
a[m+i1-1][m+i2-2-i]=number++;
for(int i=0;i<m-2;i++)//left
a[m+i1-i-2][i2]=number++;
}
doit(m-2,i1+1,i2+1);
}
public void print(int m)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<m;j++)
{
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
public static void main(String[] args){
System.out.println("输入数字(1-20):");
Scanner input=new Scanner(System.in);
int num=input.nextInt();
DemoNum dn=new DemoNum();
dn.doit(num,0,0);
dn.print(num);
}
} |