问题描述
小明最近刚刚学习了矩阵乘法,但是他计算的速度太慢,于是他希望你能帮他写一个矩阵乘法的运算器。
输入格式
输入的第一行包含三个正整数N,M,K,表示一个NM的矩阵乘以一个MK的矩阵。接下来N行,每行M个整数,表示第一个矩阵。再接下来的M行,每行K个整数,表示第二个矩阵。
输出格式
输出有N行,每行K个整数,表示矩阵乘法的结果。
样例输入
2 1 3
1
2
1 2 3
样例输出
1 2 3
2 4 6
思路:蓝桥官网对这个矩阵乘法已经出过好几次这样子的题目了,老规矩,捋清楚输入的部分,两个数组相乘得出第三个数组,就可。
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int s = scanner.nextInt();
int[][] arr = new int[n][m]; // 第一个数组
int[][] brr = new int[m][s]; // 第二个数组
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
arr[i][j] = scanner.nextInt(); // 保存第一个数组输入内容
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < s; j++) {
brr[i][j] = scanner.nextInt(); // 保存第二个数组输入内容
}
}
int[][] crr = new int[n][s]; // 第三个数组
for (int i = 0; i < n; i++) {
for (int j = 0; j < s; j++) {
crr[i][j] = 0; // 初始值为0
for (int k = 0; k < m; k++) {
crr[i][j] += arr[i][k] * brr[k][j]; // 3+=1*2
}
System.out.print(crr[i][j] + " "); // 输出
}
System.out.println(); // 换行
}
}
}