蓝桥杯算法练习 矩阵乘法 标准题解

该博客详细介绍了如何实现两个矩阵的乘法操作,包括输入格式、矩阵乘法的逻辑以及输出格式。通过一个具体的样例展示了矩阵乘法的过程,并提供了相应的Java代码实现。代码读取两个矩阵,计算它们的乘积并打印结果,是理解矩阵运算和编程实践的好材料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

输入两个矩阵,分别是m * s,s * n大小。输出两个矩阵相乘的结果。


输入格式

第一行,空格隔开的三个正整数m,s,n(均不超过200)。
接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。
接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。


输出格式

m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。


样例输入

2 3 2
1 0 -1
1 1 -3
0 3
1 2
3 1


样例输出

-3 2
-8 2


提示
*矩阵C应该是m行n列,其中C(i,j)等于矩阵A第i行行向量与矩阵B第j列列向量的内积。
例如样例中C(1,1)=(1,0,-1) * (0,1,3) = 1 * 0 +0 * 1+(-1) * 3 = -3


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 第一行,空格隔开的三个正整数m,s,n
        int m = sc.nextInt();
        int s = sc.nextInt();
        int n = sc.nextInt();
        // 接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。
        int[][] A = new int[m][s];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < s; j++) {
                A[i][j] = sc.nextInt();
            }
        }
        // 接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。
        int[][] B = new int[s][n];
        for (int i = 0; i < s; i++) {
            for (int j = 0; j < n; j++) {
                B[i][j] = sc.nextInt();
            }
        }
        // 输出m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                int sum = 0;
                for (int k = 0; k < s; k++) {
                    sum += A[i][k]*B[k][j];
                }
                System.out.print(sum+" ");
            }
            System.out.println();
        }
    }
}

点个关注,这里是蓝桥杯算法练习专栏,每日更新练习系统的算法题解!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值