C++实现方针顺时针旋转
目录
- 题目描述
- 输入描述
- 输出描述
- 示例
- 实现思路
- 代码实现
题目描述
输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵
旋转举例:如下四个三阶方阵从左到右为数字围绕中心顺时针旋转
1 2 3
4 5 6
7 8 9
7 4 1
8 5 2
9 6 3
9 8 7
6 5 4
3 2 1
3 6 9
2 5 8
1 4 7
输入描述
第一行输入一个正整数N(0<N<10)
接下来的N行,每行N个整数,用空格分开,为方阵的数据
最后一行输入一个正整数M(0<=M<=10000)
说明:不用考虑异常输入,所有输入都是正常的,严格遵从取值范围
输出描述
输出N行,每行N个整数,用空格分开,为旋转后的数据
示例
输入:
1
1 2 3
4 5 6
7 8 9
2
输出:
9 8 7
6 5 4
3 2 1
实现思路
以如下方阵为例:
1 2 3
4 5 6
7 8 9
从最外圈开始,可以视为一个正方形,依次让正方形的边按照顺时针方向向后赋值:
原本123的位置就变成了741
原本369的位置就变成了123
原本987的位置就变成了369
原本741的位置就变成了987
从最外圈往里每一圈都按照上述操作执行向后赋值;
上述为旋转一次的步骤,按照M的次数递归调用即可。
代码实现
#include <iostream>
#include <vector>using namespace std;vector<vector<int>> getRotate(vector<vector<int>> values)
{vector<vector<int>> res = values;int size = values.size();int count = size / 2;for (int i = 0; i < count; i++){for (int j = i; j < size - i; j++){res[i][j] = values[size - 1 - j][i];res[j][size - 1-i] = values[i][j];res[size - 1-i][size - 1 - j] = values[j][size - 1-i];res[size - 1 - j][i] = values[size - 1-i][size - 1 - j];}}return res;
}int main()
{// inputint n = 0;int m = 0;vector<vector<int>> values_ori;vector<vector<int>> values_res;cin >> n;int temp = 0;vector<int> temps = {};for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){cin >> temp;temps.push_back(temp);}values_ori.push_back(temps);temps.clear();}cin >> m;// rotatevalues_res = values_ori;m = m % 4;for (int i = 0; i < m; i++){values_res = getRotate(values_res);}// outputfor (int i = 0; i < n; i++){for (int j = 0; j < n; j++){cout << values_res[i][j];if (j != n - 1){cout << " ";}}cout << endl;}
}
C++实现方针顺时针旋转相关推荐
- PC端、移动端手机竖拍原图压缩上传顺时针旋转90°的解决方案
问题背景 最近在做的项目中,不管是移动端还是后台系统都涉及到了手机照片压缩上传的问题,做完功能测试的时候发现图片回显的时候有些顺时针旋转了90°(竖拍照片,不管是ios还是android都存在这问题) ...
- LeetCode——Rotate Image(二维数组顺时针旋转90度)
问题: You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwis ...
- 柳传志:联想又遇新坎儿 要做斯巴达克方针
1月30日消息,在联想公司春晚上,现任联想集团董事局名誉主席.联想集团创始人柳传志出席,并做了讲话. 他提到联想发展到今天曾经有过三道大坎:第一个坎是在1994年,国外的品牌大举进入中国的时候,中国电 ...
- 编写程序python、实现将矩阵顺时针旋转90°_Java实现矩阵顺时针旋转90度的示例...
实现矩阵的转置较为容易,只需要将纵横下标互换即可.实现矩阵旋转稍微麻烦一点. 解题思路: 矩阵转换90度,则原矩阵的纵下标转变为新矩阵的横下标:原矩阵的横下标转变为新矩阵的纵下标,并且顺序相反. pu ...
- 【Android RTMP】NV21 图像旋转处理 ( 图像旋转算法 | 后置摄像头顺时针旋转 90 度 | 前置摄像头顺时针旋转 90 度 )
文章目录 安卓直播推流专栏博客总结 一. 后置摄像头顺时针旋转 90 度 二. 前置摄像头顺时针旋转 90 度 三. NV21 格式图像旋转代码 安卓直播推流专栏博客总结 Android RTMP 直 ...
- 【Android RTMP】NV21 图像旋转处理 ( 问题描述 | 图像顺时针旋转 90 度方案 | YUV 图像旋转细节 | 手机屏幕旋转方向 )
文章目录 安卓直播推流专栏博客总结 一. NV21 图像格式与 Camera图像传感器方向问题 二. NV21 图像格式视频旋转 1. 图像旋转问题及解决方案 ( 顺时针旋转 90 度 ) 2. NV ...
- python顺时针旋转_Python之二维数组N*N顺时针旋转90度
需求:把一个二维数组顺时针旋转90度,现实数据的替换. 比如把4*4的二维数组顺时针旋转90度 原始数据是一个嵌套列表:[['A', 'B', 'C', 'D'], ['A', 'B', 'C', ' ...
- node 16位 转24位_同时将24位和32位BMP图像顺时针旋转90度
上一次我们将24位的皮卡丘旋转了90度,但是后来改需求了...要求把32位的.bmp文件也能够旋转90度.上次就懵逼的我继续懵逼,只好继续转向CSDN求助. 浏览了各种求助帖(还找到了数年前的信科大一 ...
- 将三角形绕点b顺时针旋转90度_模型 | 图形旋转与翻折题型汇编
一文搞定-文章推荐-点击阅读 初中数学必会的12个几何模型(222页Word) 2020年中考数学33个模型全梳理(125页Word) 2021中考18个必考几何模型大梳理(656页PPT) 中考模型 ...
最新文章
- HDU 1084 - What Is Your Grade?
- 如何对DB2数据库做性能分析?
- Matlab中的CVX工具包安装
- 湖南省普通招生2021高考成绩查询,湖南省2021八省联考成绩可查,附查询入口及往年分数线...
- python元素定位input button_python+selenium 定位到元素,无法点击的解决方法
- Android学习笔记(27):日历视图Calendar
- rnn神经网络模型_ICLR 2019 | 与胶囊网络异曲同工:Bengio等提出四元数循环神经网络...
- ASP.NET页面生命周期概述(转载)
- python如何保存图像_Python应用引擎:如何保存图像?
- 每日算法系列【LeetCode 719】找出第 k 小的距离对
- HCIE-Security Day9:5个实验理解NAT Server
- 服务器打不开网页dns错误是怎么回事,dns配置错误网页打不开
- 如何从excel中删除奇数行或偶数行
- HCIA-IoT 个人学习总结 Day2
- 全国区号省份mysql_中国各个省份的区号是多少
- 于娟视频:活着就是王道
- 大数据发展前景及就业方向【大数据专业讲座】
- c语言颜色代码渐变色,Arduino中LED灯实现256中颜色的渐变
- 传感器自学笔记第八章——DHT11温湿度传感器(附带自己写的很好用的51单片机DHT11代码模板,参数列表只有一个字符数组指针)
- 利用window.location实现下载文档