public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // N阶方阵 int n = scanner.nextInt(); // 构建方阵 List<List<Integer>> matrix = new ArrayList<>(); for (int i = 0; i < n; i++) { List<Integer> row = new ArrayList<>(); for (int j = 0; j < n; j++) { row.add(i * n + j + 1); } matrix.add(row); } // 打印方阵数据 print(matrix); // 旋转M次 int m = scanner.nextInt(); // 旋转方阵 matrix = rotate(matrix, m % 4); // 旋转4次等于不旋转 // 打印旋转后的方阵 print(matrix); } static void print(List<List<Integer>> matrix) { for (List<Integer> row : matrix) { for (Integer integer : row) { System.out.print(integer + " "); } System.out.println(); } } static List<List<Integer>> rotate(List<List<Integer>> matrix, int m) { // todo 参数校验异常处理 if(m == 0){ return matrix; } List<List<Integer>> result = new ArrayList<>(); int size = matrix.size(); // 旋转方阵90度 for (int i = 0; i < size; i++) { List<Integer> row = new ArrayList<>(); for (int j = 0; j < size; j++) { row.add(matrix.get(size - j - 1).get(i)); } result.add(row); } return rotate(result, m - 1); }