题解 | #矩阵乘法#
矩阵乘法
https://www.nowcoder.com/practice/ebe941260f8c4210aa8c17e99cbc663b
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
//读取行列
int rowA=in.nextInt();
int columnArowB=in.nextInt();
int columnB=in.nextInt();
//创建数组,遍历读取两矩阵
int[][] matrixA = new int[rowA][columnArowB];
int[][] matrixB = new int[columnArowB][columnB];
for(int i = 0; i < rowA; i++){
//i为行,j为列,遍历读取每一行的每个元
for(int j = 0; j < columnArowB;j++){
matrixA[i][j]=in.nextInt();
}
}
for(int i = 0; i < columnArowB; i++){
//i为行,j为列,遍历读取每一行的每个元
for(int j = 0; j < columnB;j++){
matrixB[i][j]=in.nextInt();
}
}
//计算结果,A矩阵每行与B矩阵每列相乘
//m行n列与n行x列相乘得到m行x列
int result[][]=new int[rowA][columnB];
for (int i=0;i<rowA;i++) {
for (int j=0;j<columnB;j++) {
//结果矩阵第i行第j列的元等于
// A矩阵第i行每个元和B矩阵第j列每个元两两相乘的和
for (int k = 0; k <columnArowB;k++){
//k代表矩阵A一行的元或矩阵B一列的元
result[i][j]+=matrixA[i][k]*matrixB[k][j];
}
//至此,单个元计算结束,立即输出
System.out.print(result[i][j]+" ");
}
System.out.println();
}
}
}
}