C++代码:
#include <iostream>
using namespace std;
int T, n, m;
int angle;
int main()
{
cin >> T;
for(int i = 0; i < T; i ++ )
{
cin >> n >> m;
char a[n][m];
for(int j = 0; j < n; j ++ )
for(int k = 0; k < m; k ++ ) cin >> a[j][k];
cin >> angle;
if(angle == 0)
{
for(int j = 0; j < n; j ++ )
{
for(int k = 0; k < m; k ++ ) cout << a[j][k];
cout << endl;
}
}
else if(angle == 90)
{
for(int j = 0; j < m; j ++ )
{
for(int k = 0; k < n; k ++ ) cout << a[n - 1 - k][j];
cout << endl;
}
}
else if(angle == 180)
{
for(int j = 0; j < n; j ++ )
{
for(int k = 0; k < m; k ++ ) cout << a[n - 1 - j][m - 1 - k];
cout << endl;
}
}
else
{
for(int j = 0; j < m; j ++ )
{
for(int k = 0; k < n; k ++ ) cout << a[k][m - 1 - j];
cout << endl;
}
}
}
return 0;
}
JAVA代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int t = scanner.nextInt();
for (int i = 0; i < t; i++) {
int n = scanner.nextInt();//高度
int m = scanner.nextInt();//宽度
int[][] matrix = new int[n][m];
for (int j = 0; j < n; j++) {
String string = scanner.next();
for (int k = 0; k < m; k++) {
matrix[j][k] = string.charAt(k) - '0';
}
}
int anger = scanner.nextInt();
while (anger != 0) {
matrix = revolve_90(matrix);
anger = anger - 90;
}
print(matrix);
System.out.println();
}
scanner.close();
}
public static int[][] revolve_90(int[][] matrix){
int[][] revolve = new int[matrix[0].length][matrix.length];
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
revolve[j][matrix.length - 1 - i] = matrix[i][j];
}
}
return revolve;
}
public static void print(int[][] matrix) {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j]);
}
if (i != matrix.length - 1) {
System.out.println();
}
}
}
}
更多推荐
BOJ-304. 旋转图像-计算机一2014
发布评论