本帖最后由 孤守星空 于 2014-9-5 15:51 编辑
写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
这玩意怎么写,自己写的好麻烦兼头疼,感觉想法可能不对
附上自己写的坑爹代码
public class exam09 {
public static void main(String[] args){
show(10);
}
public static void show(int num){
int number = 1; //一堆变量,我都过意不去
Integer[][] juzhen = new Integer[num][num];
int j=0;
int i=0;
int min_i=0; //原谅我英语实在不行,想不到词儿
int max_i=num;
int min_j=0;
int max_j=num;
while(number<=num*num){
for(j=min_j;j<max_j;j++){
if(juzhen[j]==null)
juzhen[j]=number++;
}
j--;
min_i++;
for(i=min_i;i<max_i;i++){
if(juzhen[j]==null)
juzhen[j]=number++;
}
i--;
max_j--;
for(j=max_j;j>=min_j;j--){
if(juzhen[j]==null)
juzhen[j]=number++;
}
j++;
max_i--;
for(i=max_i;i>=min_i;i--){
if(juzhen[j]==null)
juzhen[j]=number++;
}
i++;
min_j++;
}
/*遍历二维数组*/
for(int x =0;x<num;x++){
for(int y=0;y<num;y++){
System.out.print(juzhen[x][y]+"\t");
}
System.out.println();
}
}
} |
|