题解 | 旋转矩阵

#include <bits/stdc++.h>
using namespace std;

const int MAX=100;

int a[MAX][MAX], b[MAX][MAX], c[MAX][MAX], n;

bool cmp() {
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            if (a[i][j] != b[i][j])return false;
    return true;
}

//将a旋转90度并存储到a中
void rotate() {
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            c[i][j] = a[n - 1 - j][i];
    memcpy(a, c, sizeof(a));
}

int main() {
    while (cin >> n) {
        for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)cin >> a[i][j];
        for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)cin >> b[i][j];
        int res = -1;
        for (int i = 0; i < 4; i++) {
            if (cmp()) {
                res = i;
                break;
            }
            rotate();
        }
        if (res == -1)cout << -1 << endl;
        else cout << res * 90 << endl;
    }
}

仍然是学习的上次的旋转矩阵的思路,旋转公式这里只提供了一次旋转,然后进行等值判定

全部评论

相关推荐

03-05 17:03
已编辑
浙江工商大学 C++
陈好好wy:整体看下来有点空空的感觉,可以把每一段项目经历都再完善一下,然后用小标题的形式写个两到三条,目前看有点太简单了,不太能看出具体在这个项目里做了什么工作。还是要尽量把自己做的工作以量化的形式体现在简历上呢。
双非本科求职如何逆袭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务