2023-05-06


package 一;

import java.util.Scanner;

public class p4924魔法少女 {

    public static void main(String[] args) {

        Scanner s = new Scanner(System.in);

        int b = s.nextInt();

        int[][] a = new int[b + 1][b + 1];

        int c = 0;

        for (int i = 1; i < b + 1; i++) {

            for (int j = 1; j < b + 1; j++) {

                a[i][j] = ++c;

            }

        }//创建二维数组对数组赋值。

        //存储操作指令。

        int[][] cz = new int[s.nextInt()][4];

        for (int i = 0; i < cz.length; i++) {

            for (int j = 0; j < 4; j++) {

                cz[i][j] = s.nextInt();

            }

        }

        //这个需要注意给的坐标不是从零开始的。

        int[][] d = new int[500][500];

        for (int i = 0; i < cz.length; i++) {

            int f = cz[i][2] * 2 + 1;

            for (int k = cz[i][0]- cz[i][2],x = 0; x < f; k++,x++) {

                for (int j = cz[i][1] - cz[i][2], y = 0; y < f; j++,y++) {

                    d[x][y] = a[k][j];

                }

            }

            //这里是来把数据提取出来。

            //找一个什么样的关系将这些数据对应上嘞

            if (cz[i][3] == 0){//顺时针旋转

                for (int k = cz[i][0]- cz[i][2],y = 0; y < f; k++,y++) {

                    for (int j = cz[i][1] - cz[i][2],x = f - 1; x >= 0; j++,x--) {

                        a[k][j] = d[x][y];

                    }

                }

            }//这里是读取数组的x 和 y改变,这就需要考虑好他们的对应关系。

            else {//逆时针旋转

                for (int k = cz[i][0]- cz[i][2],y = f - 1; y >= 0; k++,y--) {

                    for (int j = cz[i][1] - cz[i][2],x = 0; x < f; j++,x++) {

                        a[k][j] = d[x][y];

                    }

                }

            }

        }

        for (int i = 1; i < b + 1; i++) {

            for (int j = 1; j < b + 1; j++) {

                System.out.print(a[i][j] + " ");


            System.out.println();

        }

    }

}

借鉴其他同学方法,方法比较好理解,我感觉收获大的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,916评论 0 2
  • created by Dejavu(不断更新中) 简介 地面信息的提取对于车形的智能机器人来说十分重要,之前一直采...
    ericdejavu阅读 1,118评论 0 1
  • 2019年8月8日开始编写,等50题做完了希望不会太晚。 本篇纯属本人的练手作业,本人也不是什么大神,仅供参考。 ...
    墨鸢Wesley阅读 905评论 0 0
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,347评论 0 9
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,421评论 0 2