A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© sssssssx 中级黑马   /  2016-5-30 00:08  /  276 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入n");
                int n = sc.nextInt();
                int count = 0;
                int[][] arr = new int[n][n];
                int min = 1;
                sort(n,arr,count,min);
                for (int i = 0; i < arr.length; i++) {
                        for (int j = 0; j < arr.length; j++) {
                                System.out.print(arr[i][j] + "\t");
                        }
                        System.out.println();
                }
               
        }
       
        public static void sort(int n,int[][] arr,int count,int min) {
                for (int i = 0;i <= (n-1)*4;i++) {
                        if (n == 0) {
                                break;
                        }
                        if (n == 1) {
                                arr[count][count] = min;
                                break;
                        }
                        if (i < (n-1)) {
                                arr[count][count + i%(n - 1)] = min++;
                        }
                        else if (i < (n -1)*2) {
                                arr[count + i%(n -1)][count + (n -1)] = min++;
                        }
                        else if (i < (n - 1)*3) {
                                arr[count + (n - 1)][count + n - 1 -i%(n - 1)] = min++;
                        }
                        else if (i < (n - 1)*4) {
                                arr[count + n - 1 - i%(n - 1)][count] = min++;
                        }
                        else {
                                sort(n - 2,arr,++count,min);
                        }
                }
        }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马