Skip to content

Latest commit

 

History

History
72 lines (59 loc) · 1.8 KB

4075.md

File metadata and controls

72 lines (59 loc) · 1.8 KB

矩阵旋转 4075: 矩阵旋转

题目要求将给定的矩阵顺时针旋转90度后输出。

题目来源

4075: 矩阵旋转

总时间限制: 1000ms 内存限制: 65536kB

描述

给定一个n*n的矩阵,求出该矩阵顺时针旋转90度后的矩阵。

输入

第一行为矩阵的数量M(1<=M<=100),其后每个矩阵数据的第一行是该矩阵的行数(行数=列数)n(1<=n<=100),后面跟着n行数据,每行是矩阵在该行的列数据,数字间由空格隔开。

输出

输出N个矩阵,每个矩阵由若干行构成,每行代表矩阵当前行的列数据,数字间由空格隔开,每行最后一个数字后面不输出空格。

样例输入

1
2
1 2
3 4

样例输出

3 1
4 2

题目没有要求对旋转后的矩阵进行后续处理,因此可以变换输出下标的顺序进行输出即可。

#include <iostream>
using namespace std;
int main() {
	int m, i, n, j ,k;
	cin >> m;
	for (i = 0; i < m; ++i) {
		cin >> n;
		int **data = new int*[n];
		for (j = 0; j < n; ++j) {
			data[j] = new int[n];
			for (k = 0; k < n; ++k) {
				cin >> data[j][k];
			}
		}
		for (k = 0; k < n; k++) {
			for (j = n - 1; j >= 0; --j) {
				cout << data[j][k];
				if (j > 0) {
					cout << " ";
				}
			}
			cout << endl;
		}
		for (j = 0; j < n; ++j) {
			delete[] data[j];
		}
		delete[] data;
	}
	return 0;
}

4075.cpp 代码长度:505B 内存:136kB 时间:2ms 通过率:91% 最小内存:136kB 最短时间:0ms

给定的矩阵都是方阵,由于事先不知道矩阵的大小,因此需要采用动态内存分配的方式,最后注意释放内存。

有任何的改进意见欢迎大家在微信平台公众号主页面留言或者发表issue。