黑马程序员技术交流社区

标题: 自己写的螺旋矩阵,求指点哪里出问题了 [打印本页]

作者: bboyXiaoNuo    时间: 2015-5-1 17:45
标题: 自己写的螺旋矩阵,求指点哪里出问题了
class Luoxuan
{
        public static void main (String[] args)
        {
                        pintLuoxuan(8);
        }
        static void pintLuoxuan (int n)
        {
                int[][] arr = new int[n][n];
                int flag = 1;
                int value = 1;
                int x1 = 0;
                int y2 = n-1;
                int x3 = n-1;
                int y4 = 0;
                for (int i = 0;i<n;i++) {
                        //flag 使区域1 2 和区域3 4交替执行
                        if (flag == 1) {
                                int y1 = x1;
                                for (int j = i;j < n;j++) {
                                        arr[x1][y1] = value++;
                                        y1++;
                                }
                                x1++;
                                int x2 = x1;
                                for (int k = i+1;k < n;k++) {
                                        arr[x2][y2] = value++;
                                        x2++;
                                }
                                y2--;
                                flag = 2;
                        } else if  (flag == 2) {
                                int y3 = x3 - 1;
                                for (int a = i;a < n;a++) {
                                        arr[x3][y3] = value++;
                                        y3--;
                                }
                                x3--;
                                int x4 = x3;
                                for (int b = i+1;b < n;b++) {
                                        arr[x4][y4] = value++;
                                        x4--;
                                }
                                y4++;
                                flag = 1;
                        }
                       
                }
                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