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

[mw_shl_code=java,true]package itcast;

import java.util.Scanner;

public class SpiralMatrix {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.print("请输入需要打印的螺旋方阵的维数:");
                int n = sc.nextInt();
                sc.close();
                int[][] martix = matrix(n);
                for (int i = 0; i < n; i++) {
                        for (int j = 0; j < n; j++) {
                                System.out.print(martix[j]+"\t");
                        }
                        System.out.println();
                        System.out.println();
                        System.out.println();
                }
        }

        private static int[][] matrix(int n) {
                int[][] martix = new int[n][n];
                int number = 1;
                int a = 0; int b = n;
                for (int i = 0; i < n-2; i++) {
                        for (int y = a; y < b; y++) {
                                martix[a][y] = number;
                                number++;
                        }
                        for (int x = a+1; x < b - 1; x++) {
                                martix[x][b-1] = number;
                                number++;
                        }
                        for (int y = b-1; y >= a; y--) {
                                martix[b-1][y] = number;
                                number++;
                        }
                        for (int x = b - 2; x >= a+1; x--) {
                                martix[x][a] = number;
                                number++;
                        }
                        if((n%2!=0)) {
                                martix[n/2][n/2] = n*n;
                        }
                        a++;
                        b--;
                }
                return martix;
        }
}
[/mw_shl_code]

1 个回复

倒序浏览
约瑟夫环其实是一个很经典的数学问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马