文章

43

粉丝

0

获赞

56

访问

9.1k

头像
旋转矩阵 - 中南大学 题解:C++
P1933 中南大学2023年机试题
发布于2025年8月30日 17:14
阅读数 19

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

// 矩阵逆时针旋转90度 
void Ni90(int num[120][120],int n){
	int num1[120][120];
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			num1[i][j]=num[j][n-i-1];
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			num[i][j]=num1[i][j];
		}
	}
}

int main(){
	int t,sum=0;
	cin>>t;
	while(sum<t){
		int num[120][120],n;
		cin>>n;
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				cin>>num[i][j];
			}
		}
		
		Ni90(num,n);
		Ni90(num,n);
		Ni90(num,n);
		
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				cout<<num[i][j]<<" ";
			}
			cout<<endl;
		}
		sum++;
	}
	return 0;
}

因为我知道逆时针旋转矩阵的公式:num1[i][j]=num[j][n-i-1]; 所以本题我采用的是进行三次逆时针旋转

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发