题解 | #旋转矩阵# 二维数组的调用

旋转矩阵

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

#include <iostream>
using namespace std;

const int N = 10;

int n;
int a[N][N], b[N][N];

bool fn(int x[N][N], int y[N][N]) //写x[n][n], y[n][n]会报错
{
    bool sign = true;
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            if(x[i][j] != y[i][j])
            {
                sign = false;
                break;
            }
    if(sign) return true;
    return false;
}

void rever(int a[N][N])  // 写a[n][n]会报错
{
    int c[N][N];
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            c[i][j] = a[i][j];
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            a[i][j] = c[n-1-j][i];
        }
    }
}

int main() {
    while(cin >> n)
    {
        for(int i = 0; i < n; i++)
            for(int j = 0; j < n; j++)
                scanf("%d", &a[i][j]);
        for(int i = 0; i < n; i++)
            for(int j = 0; j < n; j++)
                scanf("%d", &b[i][j]);
        bool sign = false;
        for(int k = 0; k < 4; k++)
        {
            if(fn(a, b))
            {
                cout << k * 90 << endl;
                sign = true;
                break;
            }
            rever(a);
        }
        if(!sign) puts("-1");
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

把球:这个听过,你加了就会发现是字节的hr
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务