zoukankan      html  css  js  c++  java
  • 九度OJ--Q1164

    import java.util.Scanner;

    /*
    * 题目描述:
    * 任意输入两个9阶以下矩阵,要求判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。
    * 要求先输入矩阵阶数,然后输入两个矩阵,每行两个数之间可以用任意个空格分隔。行之间用回车分隔,两个矩阵间用任意的回车分隔。
    * 输入:
    * 输入有多组数据。
    * 每组数据第一行输入n(1<=n<=9),从第二行开始输入两个n阶矩阵。
    * 输出:
    * 判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。
    * 如果旋转角度的结果有多个,则输出最小的那个。
    * 样例输入:
    * 3
    * 1 2 3
    * 4 5 6
    * 7 8 9
    * 7 4 1
    * 8 5 2
    * 9 6 3
    * 样例输出:
    * 90
    */

    public class q1164 {

      public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        while(scanner.hasNext()) {

          int n = scanner.nextInt();

          int[][] a = new int[n][n];
          int[][] b = new int[n][n];

          // 给a,b两个矩阵赋值
          for(int i=0; i<n; i++) 
            for(int j=0; j<n; j++) 
              a[i][j] = scanner.nextInt();
          for(int i=0; i<n; i++) 
            for(int j=0; j<n; j++) 
              b[i][j] = scanner.nextInt();

          int flag = -1;

          // 旋转角度为0的情况 
          for(int i=0; i<n; i++) {
            for(int j=0; j<n; j++) {
              if(a[i][j] == b[i][j]) {
                flag = 0;
                continue;
              }
              else {
                flag = -1;
                break;
              }
            }
            if(flag == -1) break;
            else continue;
          }
          if(flag == 0) {
            System.out.println(flag);
            continue;
          }

          // 旋转角度为90的情况
          for(int i=0; i<n; i++) {

            int j = 0;

            while(j<n) {
              if(a[i][j] == b[j][n-1-i]) {
                flag = 90;
                j++;
              }
              else {
                flag = -1;
                break;
              }
            }

            if(flag == -1) break;
            else continue;

          }
          if(flag == 90) {
            System.out.println(flag);
            continue;
          }

          // 旋转角度为180的情况
          for(int i=0; i<n; i++) {

            int j = 0;

            while(j<n) {
              if(a[i][j] == b[n-1-i][n-1-j]) {
                flag = 180;
                j++;
              }
              else {
                flag = -1;
                break;
              }
            }

            if(flag == -1) break;
            else continue;

          }  
          if(flag == 180) {
            System.out.println(flag);
            continue;
          }

          // 旋转角度为270的情况 
          for(int i=0; i<n; i++) {

            int j=0;

            while(j<n) {
              if(a[i][j] == b[n-1-j][i]) {
                flag = 270;
                j++;
              }
              else {
                flag = -1;
                break;
              }
            }

            if(flag == -1) break;
            else continue;
          }
          if(flag == 270) {
            System.out.println(flag);
            continue;
          }

          // flag = -1 的情况
          if(flag == -1) {
            System.out.println(flag);
            continue;
          }
        }

      }

    }

  • 相关阅读:
    centos7.6 使用yum安装mysql5.7
    解决hadoop本地库问题
    docker-compose 启动警告
    docker 安装zabbix5.0 界面乱码问题解决
    docker 部署zabbix问题
    zookeeper 超时问题
    hbase regionserver异常宕机
    (转载)hadoop 滚动升级
    hadoop Requested data length 86483783 is longer than maximum configured RPC length
    zkfc 异常退出问题,报错Received stat error from Zookeeper. code:CONNECTIONLOSS
  • 原文地址:https://www.cnblogs.com/yg6405816/p/5466896.html
Copyright © 2011-2022 走看看