WUSTOJ 1365: 矩阵旋转(Java)

    xiaoxiao2023-10-04  179

    题目链接:1365: 矩阵旋转
    提示
    T组测试数据旋转角度d的可能取值-450每组测试数据末尾有个换行输出时,for循环中的i,j要注意,重点❗️
    代码💻
    /** * Time 1358ms * @author wowpH * @version 1.4 * @date 2019年5月25日上午9:55:06 * Environment: Windows 10 * IDE Version: Eclipse 2019-3 * JDK Version: JDK1.8.0_112 */ import java.util.Scanner; public class Main { private Scanner sc; private int n; // 矩阵大小 private int d; // 旋转角度 private int[][] matrix; // 矩阵 public Main() { matrix = new int[101][101]; // 下标从0开始 sc = new Scanner(System.in); int T = sc.nextInt();// 数据组数 while ((T--) > 0) { inputMatrix(); // 输入数据 rotate(); // 旋转并输出 System.out.println(); // 重点!重点! } sc.close(); } private void inputMatrix() { n = sc.nextInt(); d = sc.nextInt(); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { matrix[i][j] = sc.nextInt(); } } } private void rotate() { d = d / 90 % 4; // 将范围缩小到[-3, 3] if (d < 0) { d += 4; // 负的,顺时针旋转360°,变成正的 } switch (d) { case 0: caseZero(); // 顺时针旋转0° break; case 1: caseOne(); // 顺时针旋转90° break; case 2: caseTwo(); // 顺时针旋转180° break; case 3: caseThree(); // 顺时针旋转270° break; default: } } private void caseZero() { // 从matrix[0][0]开始输出 for (int i = 0, j; i < n; i++) { for (j = 0; j < n - 1; j++) { System.out.print(matrix[i][j] + " "); } System.out.println(matrix[i][j]); } } private void caseOne() { // 从matrix[n-1][0]开始输出 for (int i = 0, j; i < n; i++) { for (j = n - 1; j > 0; j--) { System.out.print(matrix[j][i] + " "); } System.out.println(matrix[j][i]); } } private void caseTwo() { // 从matrix[n-1][n-1]开始输出 for (int i = n - 1, j; i >= 0; i--) { for (j = n - 1; j > 0; j--) { System.out.print(matrix[i][j] + " "); } System.out.println(matrix[i][j]); } } private void caseThree() { // 从matrix[0][n-1]开始输出 for (int i = n - 1, j; i >= 0; i--) { for (j = 0; j < n - 1; j++) { System.out.print(matrix[j][i] + " "); } System.out.println(matrix[j][i]); } } public static void main(String[] args) { new Main(); } }

    版权声明:

    转载请于首页注明链接形式的WUSTOJ 1365: 矩阵旋转(Java)——wowpH;代码原创,公开引用不能删除首行注释(作者,版本号,时间等信息);如果有疑问欢迎评论区留言,尽量解答;如果有错误,还望大侠评论区指正。
    最新回复(0)