题解 | #矩阵乘法#
矩阵乘法
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(); } } } }