程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 九度OJ--1164(C++),九度oj--1164

九度OJ--1164(C++),九度oj--1164

編輯:C++入門知識

九度OJ--1164(C++),九度oj--1164


#include <iostream>
#include <vector>

using namespace std;

int main() {

  int n; // n為矩陣階數

  while(cin>>n) {

    int x, y, i, j; // 用於循環控制

    vector< vector<int> > vec1(n, vector<int>(n));
    vector< vector<int> > vec2(n, vector<int>(n));

    // 向動態數組中存入數據
    for(x=0; x<n; x++) {
      for(y=0; y<n; y++) {
        int mid; // 中間變量,用於向vec1中存入數據
        cin>>mid;
        vec1[x][y] = mid;
      }
    }
    for(x=0; x<n; x++) {
      for(y=0; y<n; y++) {
        int mid; // 中間變量,用於向vec2中存入數據
        cin>>mid;
        vec2[x][y] = mid;
      }
    }

    int flag = 0; // 用於判定全部元素是否符合旋轉角度,是flag=1,否flag=0
    int angle = -1; // 記錄旋轉角度

    // 判斷旋轉角度是否為0
    for(i=0; i<n; i++) {

      for(j=0; j<n; j++) {

        if(vec1[i][j] == vec2[i][j]) {
          flag = 1;
          continue;
        }
        else {
          flag = 0;
          break;
        }
      }

      if(flag == 1) {
        continue;
      }
      else {
        break;
      }
    }
    if(flag == 1) {
      angle = 0;
      cout<<angle<<endl;
      continue;
    }
    else {
      angle = -1;
    }

    // 判斷旋轉角度是否為90
    for(i=0; i<n; i++) {

      for(j=0; j<n; j++) {

        if(vec1[i][j] == vec2[j][n-1-i]) {
          flag = 1;
          continue;
        }
        else {
          flag = 0;
          break;
        }
      }

      if(flag == 1) {
        continue;
      }
      else {
        break;
      }
    }
    if(flag == 1) {
      angle = 90;
      cout<<angle<<endl;
      continue;
    }
    else {
      angle = -1;
    }

    // 判斷旋轉角度是否為180
    for(i=0; i<n; i++) {

      for(j=0; j<n; j++) {

        if(vec1[i][j] == vec2[n-1-i][n-1-j]) {
          flag = 1;
          continue;
        }
        else {
          flag = 0;
          break;
        }
      }

      if(flag == 1) {
        continue;
      }
      else {
        break;
      }
    }
    if(flag == 1) {
      angle = 180;
      cout<<angle<<endl;
      continue;
    }
    else {
      angle = -1;
    }

    // 判斷旋轉角度是否為279
    for(i=0; i<n; i++) {

      for(j=0; j<n; j++) {

        if(vec1[i][j] == vec2[n-1-j][i]) {
          flag = 1;
          continue;
        }
        else {
          flag = 0;
          break;
        }
      }

      if(flag == 1) {
        continue;
      }
      else {
        break;
      }
    }
    if(flag == 1) {
      angle = 270;
      cout<<angle<<endl;
      continue;
    }
    else {
      angle = -1;
    }

    // 若以上角度都不符合
    if(angle == -1) {
      cout<<angle<<endl;
      continue;
    }

  }

  return 0;

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved