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;
          }
        }

      }

    }

  • 相关阅读:
    Web--10月8日随笔
    Web--10月9日随笔
    Web-9月12日笔记
    jfinal处理完html提交过来的数据,将处理信息返回给html页面。html根据返回值进行相应的处理
    python爬取网页的通用代码框架
    解决:AttributeError: module 'requests' has no attribute 'post'”
    在python学习时间过程中,你会不断发现需要解决的问题,更多需要连接未知,这时候到哪里去查阅资料呢?
    为了应对异常情况,提供最原始的python第三方库的安装方法:手动安装。往往是Windows用户需要用到这种方法。
    根据需要查找需要的第三方pyhton库
    python小练习:使用循环和函数实现一个摇骰子小游戏。游戏规则如下:游戏开始,首先玩家选择Big or Small(押大小),选择完成后开始摇三个骰子,计算总值,11<=总值<=18为“大”,3<=总值<=10为“小”。然后告诉玩家猜对或者是猜错的结果。
  • 原文地址:https://www.cnblogs.com/yg6405816/p/5466896.html
Copyright © 2011-2022 走看看