文章

7

粉丝

502

获赞

2

访问

16.3k

头像
1377 旋转矩
择校分析
发布于2024年1月6日 14:51
阅读数 1.3k

#include
#include 
#include
#include
#include
using namespace std;


int f1(int a[200][200],int b[200][200],int n)
{
	int c[200][200];
	for (int i = 0; i < n; i++)//分类讨论 
	{
		for (int j = 0; j < n; j++)
		{
			if (a[i][j] == b[i][j])//矩阵完全一致
				return 0;
			else if (a[i] [j] == b[i][n-j-1])//矩阵顺时针旋转90度 
				return 90; 
		} 
	}
	for (int i = n-1; i >=0; i--)//阵顺时针旋转180度 
	{
		for (int j = n-1; j >= 0; j--)
		{
			if (b[i][j] == a[i][j])
				return 180;
			c[i][j] = b[i][j];//c存储旋转后的矩阵 
		}
	}
		for (int i = 0; i < n; i++)//分类讨论 
	{
		for (int j = 0; j < n; j++)
		{
			if (a[i] [j] == c[i][n-j-1])//a与c比较,矩阵旋转270度 
				return 270;
		} 
	} 	
}

int main()
{
  int n ;
  int a[200][200] = {0};
  int b[200][200] = {0};
  int c[200][200] = {0};
  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 (...
登录查看完整内容


登录后发布评论

3 条评论
snake VIP
2024年1月6日 19:46

这里if判断其中一个相等直接return的做法有点问题

如果出现重复的值就会出问题:如果旋转角度的结果有多个,则输出最小的那个。

赞(0)

snake : 回复 snake: 你的这个算法适用于矩阵没有重复数字就可以

2024年1月6日 19:47

冷喵 : 回复 snake: 感谢

2024年1月8日 22:59