import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
int y = scanner.nextInt();
int z = scanner.nextInt();
// 读取矩阵A
int[][] a = new int[x][y];
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
a[i][j] = scanner.nextInt();
}
}
// 读取矩阵B
int[][] b = new int[y][z];
for (int i = 0; i < y; i++) {
for (int j = 0; j < z; j++) {
b[i][j] = scanner.nextInt();
}
}
// 计算矩阵乘积C
int[][] c = new int[x][z];
for (int i = 0; i < x; i++) {
for (int j = 0; j < z; j++) {
int sum = 0;
for (int k = 0; k < y; k++) {
sum += a[i][k] * b[k][j];
}
c[i][j] = sum;
}
}
// 输出结果
for (int i = 0; i < x; i++) {
StringBuilder sb = new StringBuilder();
for (int j = 0; j < z; j++) {
if (j > 0) {
sb.append(" ");
}
sb.append(c[i][j]);
}
System.out.println(sb.toString());
}
}
}
https://www.nowcoder.com/discuss/727521113110073344
思路:
- 输入处理:使用Scanner读取输入数据,首先读取矩阵的维度参数x, y, z。
- 矩阵存储:分别用二维数组a和b存储输入的两个矩阵。
- 矩阵乘法:通过三重循环计算每个元素的值,外层循环遍历结果矩阵的行和列,内层循环计算点积和。
- 结果输出:使用StringBuilder构造每行的输出字符串,确保元素之间用空格分隔,行末没有多余空格。



京公网安备 11010502036488号