public class CircleNumber {
private int[][] Matrix;
private int Size;
public CircleNumber(
int size){
this.Size=
size;
InitMatrix();
}
private void InitMatrix(){
Matrix =
new int[Size][];
for(
int i=
0;i<Size;i++
){
Matrix[i]=
new int[Size];
}
}
public void FormCircleNumber(){
int Num=
this.Size*
this.Size;
int Row=
Size;
int Col=
Size;
int i=
0,j=
0,k=
0;
int tmp=
1;
int LeftFlag=
0;
int UpFlag=
0;
while((Num>tmp)||(Num==tmp)){
//顺时针旋转
if((j+
1<Col)&&(LeftFlag==
0)&&(UpFlag==
0)){
//向右
Matrix[i][j]=
tmp;
j++
;
}else if(j+
1==Col&&i+
1<Row){
//向下
Matrix[i][j]=
tmp;
i++
;
if(i==Row-
1){
LeftFlag=
1;
}
}else if((i+
1==Row)&&(LeftFlag==
1)&&(j-
1>=k)){
//向左
Matrix[i][j]=
tmp;
j--
;
if(j==
k){
UpFlag=
1;
LeftFlag=
0;
}
}else if((j==k)&&(UpFlag==
1)&&(i-
1)>=k){
//向上
Matrix[i][j]=
tmp;
i--
;
}else{
//完成一圈为下一圈准备数据
k++
;
i=
k;
j++
;
Col--
;
Row--
;
LeftFlag=
0;
UpFlag=
0;
tmp--
;
}
tmp++
;
}
}
public void Display(){
int i,j;
for(i=
0;i<
this.Size;i++
){
for(j=
0;j<
this.Size;j++
){
System.out.print(Matrix[i][j]+
"\t");
}
System.out.println();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
CircleNumber cirnber=
new CircleNumber(
16) ;
cirnber.FormCircleNumber();
cirnber.Display();
}
}
转载于:https://www.cnblogs.com/ren19930504/p/3346492.html
相关资源:数据结构—成绩单生成器
转载请注明原文地址: https://win8.8miu.com/read-1552471.html