题解 | #矩阵乘法#

矩阵乘法

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

全部评论

相关推荐

27届毕业,最近想找一段大厂实习,感觉简历有些问题,好多都不给面,求大佬们指点,最近好焦虑
后端劝退第91人:我从后端的角度分析一下你的第一个项目,我感觉亮点不是很突出。因为我是因为组内有需求,临时上手学react干活。我用到的技术基本就cover你那个智慧园区管理平台的很多亮点了。那作为比较专业的前端,你上述的内容是不是有点单薄呢。感觉还得包装
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务