文章

26

粉丝

0

获赞

10

访问

1.8k

头像
旋转矩阵 - 北航 题解:C++ 关键在于顺时针旋转90度的公式
P1377 北京航空航天大学机试题
发布于2025年6月26日 15:33
阅读数 49

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

//矩阵旋转90度的函数;需要注意的是其余的180度和270度可通过多次调用这个函数来达到相同的效果;对于0度的话直接判断是否
//与原矩阵相同即可
void change(int n,int a[10][10]){
	int a_c[10][10];
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			a_c[j][n-i-1]=a[i][j];
		}
	}
	//将旋转之后的矩阵再次存入a数组中 
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			a[i][j]=a_c[i][j];
		}
	}
}

//判断两个矩阵是否相同
bool isSame(int n,int a[10][10],int b[10][10]){
	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;
} 

int main(){
	int n;
	while(cin>>n){
		int a[10][10],b[10][10];
		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];
			}
		}
		if(isSame(n,a,b)){
			cout<<0<<endl;
		}else{
			change(n,a);
			if(isSame(n,a,b)){
				cout<<90<<endl;
			}else{
...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发