题解 | #C翻转#

C翻转

https://www.nowcoder.com/practice/a591300637874f6ba2316a5fe3e94579

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[][] matrix = new int[5][5];
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                matrix[i][j] = sc.nextInt();
            }
        }
        int a = sc.nextInt();
        int b = sc.nextInt();
        int x = sc.nextInt();
        int y = sc.nextInt();
        x--;
        y--;
        if (a == 1 && b == 2) {
            int temp = matrix[x][y];
            matrix[x][y] = matrix[x + 1][y];
            matrix[x + 1][y] = matrix[x + 1][y + 1];
            matrix[x + 1][y + 1] = matrix[x][y + 1];
            matrix[x][y + 1] = temp;
        } else if (a == 1 && b == 3) {
            up_to_down(matrix, x, y);
            transposition(matrix, x, y);
        } else if (a == 2 && b == 2) {
            int temp = matrix[x][y];
            matrix[x][y] = matrix[x][y + 1];
            matrix[x][y + 1] = matrix[x + 1][y + 1];
            matrix[x + 1][y + 1] = matrix[x + 1][y];
            matrix[x + 1][y] = temp;
        } else {
            left_to_right(matrix, x, y);
            transposition(matrix, x, y);
        }
        print(matrix);
    }
    private static void swap(int[][] matrix, int i1, int j1, int i2, int j2) {
        int temp = matrix[i1][j1];
        matrix[i1][j1] = matrix[i2][j2];
        matrix[i2][j2] = temp;
    }

    private static void up_to_down(int[][] matrix, int x, int y) {
        for (int j = 0; j < 3; j++) {
            swap(matrix, x, y + j, x + 2, y + j);
        }
    }
    private static void left_to_right(int[][] matrix, int x, int y) {
        for (int i = 0; i < 3; i++) {
            swap(matrix, x + i, y, x + i, y + 2);
        }
    }
    private static void transposition(int[][] matrix, int x, int y) {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < i; j++) {
                swap(matrix, x + i, y + j, x + j, y + i);
            }
        }
    }
    private static void print(int[][] matrix) {
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();
        }
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 17:13
想去,但是听说加班强度实在难崩,所以拒绝了,现在有点心梗对面hr感觉也是实习生,打电话的时候怪紧张的,但是感觉人很好嘞
水中水之下水道的鼠鼠:哥们这不先去体验一下,不行再跑呗,大不了混个实习经历(有更好的转正offer就当我没说)
点赞 评论 收藏
分享
05-19 19:57
蚌埠学院 Python
2237:Gpa70不算高,建议只写排名,个人技能不在多而在精,缩到8条以内。项目留一个含金量高的,减少间距弄到一页,硕士简历也就一页,本科不要写很多
实习,投递多份简历没人回...
点赞 评论 收藏
分享
05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务