旋转矩阵

这篇博客探讨了如何将一个n*m的整数矩阵顺时针旋转90度。提出了三种方法,包括直接赋值新矩阵、逐行旋转以及元素交换,并分析了第三种方法的可行性,涉及矩阵的上下翻转和主对角线对称操作。提供了样例输入和输出,以及解决问题的思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给出一个n*m 的整数矩阵,请你把这个矩阵顺时针旋转90o 以后输出。

输入格式

第一行输入两个整数n,m(1<=n,m<=200) ,用空格隔开。
接下来 行,每行输入m个整数,表示输入的矩阵。
矩阵中元素都是 int 范围内的整数。

输出格式

输入m行,每行n个空格隔开的整数,表示旋转以后的矩阵。
注意:每行末尾不能输出多余的空格。

样例输入

3 4
-1 3 6 3
7 7 9 1
10 3 4 6

样例输出

10 7 -1
3 7 3
4 9 6
6 1 3

解:

旋转矩阵,有三种方式。
1.给一个新矩阵,按要求赋值,空间200x200开销不小。
2.一排一排旋转,只需要一排临时变量即可,但有些复杂。
3.元素一个个交换,最重要的是找元素交换规律。
个人认为方法三可行性更高,经分析矩阵整体先做个上下反转,再以主对角线做个对称操作,就可实现顺时针旋转90o
需要注意的是通过主对角线对称前,将矩阵补成正方形,这样操作方便些;输出是时也要留意矩阵范围。
(不旋转矩阵,而选择更改输出方式也挺妙的)

代码:

#include <iostream>
using namespace std; 

int main(int argc, char *argv[]) {
   
   
	int n,m,a[205][205
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值