题目链接:1365: 矩阵旋转
提示
T组测试数据旋转角度d的可能取值-450每组测试数据末尾有个换行输出时,for循环中的i,j要注意,重点❗️
代码💻
import java
.util
.Scanner
;
public class Main {
private Scanner sc
;
private int n
;
private int d
;
private int[][] matrix
;
public Main() {
matrix
= new int[101][101];
sc
= new Scanner(System
.in
);
int T
= sc
.nextInt();
while ((T
--) > 0) {
inputMatrix();
rotate();
System
.out
.println();
}
sc
.close();
}
private void inputMatrix() {
n
= sc
.nextInt();
d
= sc
.nextInt();
for (int i
= 0; i
< n
; i
++) {
for (int j
= 0; j
< n
; j
++) {
matrix
[i
][j
] = sc
.nextInt();
}
}
}
private void rotate() {
d
= d
/ 90 % 4;
if (d
< 0) {
d
+= 4;
}
switch (d
) {
case 0:
caseZero();
break;
case 1:
caseOne();
break;
case 2:
caseTwo();
break;
case 3:
caseThree();
break;
default:
}
}
private void caseZero() {
for (int i
= 0, j
; i
< n
; i
++) {
for (j
= 0; j
< n
- 1; j
++) {
System
.out
.print(matrix
[i
][j
] + " ");
}
System
.out
.println(matrix
[i
][j
]);
}
}
private void caseOne() {
for (int i
= 0, j
; i
< n
; i
++) {
for (j
= n
- 1; j
> 0; j
--) {
System
.out
.print(matrix
[j
][i
] + " ");
}
System
.out
.println(matrix
[j
][i
]);
}
}
private void caseTwo() {
for (int i
= n
- 1, j
; i
>= 0; i
--) {
for (j
= n
- 1; j
> 0; j
--) {
System
.out
.print(matrix
[i
][j
] + " ");
}
System
.out
.println(matrix
[i
][j
]);
}
}
private void caseThree() {
for (int i
= n
- 1, j
; i
>= 0; i
--) {
for (j
= 0; j
< n
- 1; j
++) {
System
.out
.print(matrix
[j
][i
] + " ");
}
System
.out
.println(matrix
[j
][i
]);
}
}
public static void main(String
[] args
) {
new Main();
}
}
版权声明:
转载请于首页注明链接形式的WUSTOJ 1365: 矩阵旋转(Java)——wowpH;代码原创,公开引用不能删除首行注释(作者,版本号,时间等信息);如果有疑问欢迎评论区留言,尽量解答;如果有错误,还望大侠评论区指正。