记得以前的一次程序题,花好长时间才弄出来的:
给定一个正整数n,构造一个n×n维的矩阵,从1,2,........到n×n使其位置的轨迹构成一个螺旋状,for example when n=5,the matrix showed as below:
1 , 2 , 3 , 4 , 5 ,
16, 17, 18, 19, 6 ,
15, 24, 25, 20, 7 ,
14, 23, 22, 21, 8 ,
13, 12, 11, 10, 9 ,
/**
* @(#)Exam.java
*
*
* @westsky
* @version 1.00 2007/4/21
*/
public class Exam {
/**
* Creates a new instance of Exam
.
*/
public Exam() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int n=5;
int m;
int flag=0;
int k=0;
int num=1;
int [][]a=new int[n][n];
for(m=n-1;m>0;m=m-2){
if(flag==0){
for(int i=0;i
a[k][i+k]=num++;
}
flag=(flag+1)%4;
}
if(flag==1){
for(int i=0;i
a[i+k][n-1-k]=num++;
}
flag=(flag+1)%4;
}
if(flag==2){
for(int i=0;i
a[n-1-k][n-1-i-k]=num++;
}
flag=(flag+1)%4;
}
if(flag==3){
for(int i=0;i
a[n-1-i-k][k]=num++;
}
flag=(flag+1)%4;
}
k++;
}
if((n%2)==1)
a[n/2][n/2]=n*n;
String format=null;
for(int i=0;i
for(int j=0;j
format=a[i][j]>9?", ":" , ";
System.out.print(a[i][j]+format);
}
System.out.println();
}
}
}
Though the code maybe redundant,it resolves the problem!!!