题解 | #矩阵乘法#

矩阵乘法

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();
            }
        }
    }
}

全部评论

相关推荐

威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务