黑马程序员技术交流社区

标题: 螺旋数阵,传奇数的时候有用,传偶数就会乱,请高手帮忙看看 [打印本页]

作者: GiveUp    时间: 2015-6-20 14:24
标题: 螺旋数阵,传奇数的时候有用,传偶数就会乱,请高手帮忙看看
class  p1  
{
        public static void main(String[] args)
        {
                int n=8;
                int [][]arr=new int[n][n];
                int a=1;
                int b=0;
                 int j=0;
                 int i=0;
                for(int k=0;k<n/2;k++)
                {
                        j=b;
                        i=b;
                        w:while(true)
                        {
                               
                                                if(j==n-1-b)//        4        3        2
                                                {
                                                        while(true)
                                                        {
                                       
                                                                        if(i==n-1-b)//        4        3        2
                                                                        {
                                                                                while(true)
                                                                                {
                                                                               
                                                                                                        if(j==b)//        0        1        2
                                                                                                        {
                                                                                                                while(true)
                                                                                                                {                                                       
                                                                                                                                        if(j==i-1)//        1        2        3
                                                                                                                                        {
                                                                                                                                                arr[i][j]=a;
                                       
                                                                                                                                                a++;
                                                                                                                                                break w;
                                                                                                                                               
                                                                                                                                        }
                                                                                                                arr[i][j]=a;
                                                                                                                i--;
                                                                                                                a++;
                                                                                                               
                                                                                                                }
                                                                                                        }
                                                                               
                                                                                arr[i][j]=a;
                                                                                j--;
                                                                                a++;
                                                                                }
                                                                        }
                                                       
                                                        arr[i][j]=a;
                                                        i++;
                                                        a++;
                                                        }
                                               
                                                }
                                arr[i][j]=a;
                                a++;
                                j++;
                        }
                        b++;
                }
                arr[(n/2)][(n/2)]=a;

                for(int x=0;x<n;x++)
                {
                        for(int y=0;y<n;y++)
                        {
                                System.out.print(arr[x][y]+"\t");
                        }
                        System.out.println();
                }
        }
}





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