黑马程序员技术交流社区
标题:
学习累了,来读读代码吧
[打印本页]
作者:
shuren2015
时间:
2015-2-28 21:31
标题:
学习累了,来读读代码吧
9、 写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。
一开始想的很复杂,想通也就那么回事
package blog;
public class ArrayDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
test(7);
}
public static void test(int a){
int[][] x=new int[a][a];
int count=1;
//
for(int m=0;m<a>>1;m++){
//往右初始化
for(int b=m;b<a-m;b++){
x[m][b]=count++;
//往下初始化
}for(int c=m+1;c<a-1-m;c++){
x[c][a-1-m]=count++;
//往左初始化
}for(int d=a-1-m;d>=m;d--){
x[a-1-m][d]=count++;
//往上初始化
}for(int e=a-2-m;e>m;e--){
x[e][m]=count++;
//当a为奇数时,发现最中间的少了,直接补丁补上(上面的代码自己都不敢看了)
}if(a%2==1){
int h=a/2;
x[h][h]=a*a;
}
}
//遍历打印该二维数组
for(int p=0;p<a;p++){
for(int t=0;t<a;t++){
System.out.print(x[p][t]+"\t");
}
System.out.println();
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2