N*N矩阵旋转

Description

给你一个n*n的矩阵,你的任务是将它逆时针旋转角度d。

[输入]

输入的第一个数为T,表示接下来有T组数据。

每组数据的格式如下:

第一行为两个整数n,d。1<=n<=100,d是90的倍数。

接下来有n行。每行n个整数,每个数之间由一个空格隔开,表示这个矩阵的元素。

[输出]

输出旋转后的矩阵,注意行末不要输出多余的空格。

[样例输入]

2

3 90

1 2 3

4 5 6

7 8 9

4 270

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

[样例输出]

3 6 9

2 5 8

1 4 7

13 9 5 1

14 10 6 2

15 11 7 3

16 12 8 4

package 第六次模拟;

import java.util.Scanner;

public class Demo8旋转 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
while (n-- > 0) { int a = sc.nextInt();
int b = sc.nextInt();
int[][] arr = new int[a][b];
for (int i = 0; i < a; i++) {
for (int j = 0; j < a; j++) {
arr[i][j] = sc.nextInt();
}
}
if (b % 360 / 90 == 1)
fun_90(arr, a, a);
else if (b % 360 / 90 == 3)
fun90(arr, a, a);
else if (b % 360 / 90 == 2)
fun180(arr, a, a);
else {
for (int i = 0; i < a; i++) {
for (int j = 0; j < a; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
} private static void fun180(int[][] num, int m, int n) {
// TODO 自动生成的方法存根
for (int i = m - 1; i >= 0; i--) {
for (int j = n - 1; j >= 0; j--) {
System.out.print(num[i][j] + " ");
}
System.out.println();
} } // 90
public static void fun90(int[][] num, int m, int n) {
int[][] shu = new int[m + 1][n + 1];
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
shu[i-1][j-1] = num[n - j ][i-1]; // 关键点在这
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(shu[i][j] + " ");
}
System.out.println();
}
} // -90
private static void fun_90(int[][] arr, int a, int b) {
for (int i = b - 1; i >= 0; i--) {
for (int j = 0; j < a; j++) {
System.out.print(arr[j][i] + " ");
}
System.out.println();
}
} }

最新文章

  1. (四)Spark集群搭建-Java&amp;Python版Spark
  2. [hdu 2686]Matrix
  3. Inno Setup 卸载前关闭进程或服务 x86 x64
  4. 可展开的列表组件——ExpandableListView深入解析
  5. bjfu1252 贪心
  6. JavaScript浏览器本地数据存储
  7. 重构遗留程序的一次案例学习(java程序)
  8. Js字面变量,定义问题
  9. C++类继承中的构造函数和析构函数 调用顺序
  10. 【Jqurey EasyUI+Asp.net】---DataGrid增加、删、更改、搜
  11. Selenium2(java)页面对象模型(Page Object) 八
  12. C++ 元编程 —— 让编译器帮你写程序
  13. 在ssm框架中前后台数据交互均使用json格式
  14. bzoj usaco 金组水题题解(2.5)
  15. List集合就这么简单【源码剖析】
  16. 关于Mybatis浅谈
  17. python:print输出内容大拼接,重新认识 + 和 ,
  18. CentOS7配置crate集群
  19. SQL update语句 更新和查询同一张表 冲突
  20. IIS发布问题

热门文章

  1. [hdu5351]找规律,大整数模板
  2. 新抽象语法树(AST)给 PHP7 带来的变化
  3. Unity直接调用Android Toast
  4. Atcoder Beginner Contest 166
  5. flex和flex:1的含义
  6. asp中设置session过期时间方法总结
  7. elment新增el-select的全选功能
  8. 存储系列之 RAID技术原理简介
  9. TCO14286 TriangleTriples
  10. DOM变化后事件绑定失效