黑马程序员技术交流社区

标题: 入学测试题9 [打印本页]

作者: 迷途羔羊    时间: 2015-8-31 00:30
标题: 入学测试题9
//螺旋排序,二维数组
package com.itheima2;

public class Test {
       
            public static void main(String[] args){  
                    arraynum(6);  
            }  
          
        //便于改代码..输入不同y值输出不同的二维数列  
            private static void arraynum(int y)  
            {  
                    int[][] arr=new int[y][y];  
                    int n=arr.length;  
                    int max=0;  
                    int c=0;  
                    specArr(arr,n,max,c);  
                    arrprint(arr);  
            }  
          
           //高级for输出打印用的  
            private static void arrprint(int[][] h) {  
                    for(int[] in:h)  
                    {  
                            for(int t:in)  
                            {         
                                    if(t<10)System.out.print(" "+t+" ");  
                                    else System.out.print(t+" ");  
                            }  
                            System.out.println();  
                    }  
                      
            }  
             
        //利用递归,一层一层写进去..  
            private static void specArr(int[][] arr,int n,int max,int count) {  
                      
                    if(n>0){  
                    int j=0;  
                    for(int i=0;i<(n-1)*4;i++)  
                    {  
                            if (i<n-1)  arr[0+count][i+count]=++max;  
                            else if (i<2*n-2) arr[count+j++][arr.length-1-count]=++max;  
                            else if (i<3*n-3) arr[arr.length-1-count][(j--)+count]=++max;  
                            else if (i<4*n-4) arr[arr.length-1-(j++)-count][0+count]=++max;                          
                    }         
                    if(n==1){arr[arr.length/2][arr.length/2]=max+1 ;}//注意到 当y值为奇数时,会有循环到n=1的情况,需要补进数组最中间值  
                    count++;  
                    n-=2;  
                    specArr(arr,n,max,count);  
                    }  
            }  
          
         
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2