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构造每行的输出字符串,确保元素之间用空格分隔,行末没有多余空格。