一、说明
二、代码
package com.xj.algorithm;
import java.util.Scanner;
/**
* @Author : xjfu
* @Date : 2023/2/6 17:18
* @Description :将输入的矩阵进行顺时针90旋转
*/
public class SpinMatrix {
public static void main(String[] args) {
//获取控制台输入信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入矩阵的大小:");
//获取输入的矩阵大小
int c = Integer.parseInt(sc.nextLine());
//建立矩阵对应的字符串数组存储输入的矩阵元素
String[] matrixArr = new String[c*c];
//数组下标
int index = 0;
for(int i = 0 ; i < c ; i++){
System.out.println("请输入" + i + "行矩阵元素,每个元素以','分隔:");
//获取第i行矩阵元素
String lineStr = sc.nextLine();
//将输入的第i行矩阵元素转成字符串数组
String[] lineArr = lineStr.split(",");
//将第i行矩阵元素存入到matrixArr数组中
for(int j = 0; j < c; j++){
matrixArr[index++] = lineArr[j];
}
}
//计算matrixArr数组中起始下标
int startIndex = matrixArr.length - c;
//定义旋转后的矩阵spinMatrix
int[][] spinMatrix = new int[c][c];
//填充spinMatrix矩阵
for(int i = 0 ; i < c; i++){
//计算出spinMatrix矩阵第i行第一个元素的下标
int indexV = startIndex + i;
for(int j = 0 ; j < c; j++){
spinMatrix[i][j] = Integer.parseInt(matrixArr[indexV]);
//获取第i行第j列元素的下标(每个元素间隔c位)
indexV-=c;
}
}
System.out.println("旋转后的spinMatrix矩阵:");
//打印输出旋转后的spinMatrix矩阵
System.out.print("[");
for(int i = 0 ; i < c; i++){
System.out.print("[");
for(int j = 0 ; j < c; j++){
System.out.print(spinMatrix[i][j]);
if(j != (c -1)){
System.out.print(",");
}
}
System.out.print("]");
}
System.out.print("]");
}
}
运行结果: