任务描述
本关任务:给定两个矩阵,求它们的乘积。 矩阵乘示例如下:
图1 矩阵乘
从图 1 可以看到,相乘后的矩阵的行数等于第一个矩阵的行数,列数等于第二个矩阵的列数。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,给定以下两个矩阵,求它们的乘积。 矩阵一:
⎣⎢⎢⎢⎢⎢⎡5153211466543889874322666⎦⎥⎥⎥⎥⎥⎤
矩阵二:
⎣⎢⎡94483865229310668771882198100⎦⎥⎤
测试说明
平台将运行你编写的程序代码,若你的运行结果与预期输出一致,则通关。
预期输出:
1024 540 617 1477 1393
6164 2352 3303 9704 10985
5908 2804 2444 7773 7086
5486 1065 737 7733 9455
7588 2370 4480 13114 16288
开始你的任务吧,祝你成功!
// 请在Begin-End间编写完整代码,类名请使用Transpose
/********** Begin **********/
public class Transpose{
public static void main(String[] args){
int[][] arr1={
{5,6,7},
{15,65,43},
{32,43,22},
{11,88,6},
{4,98,66}};
int[][] arr2={
{94,65,31,87,21},
{48,2,0,71,98},
{38,29,66,88,100},};
int[][] arr3 = new int[arr1.length][arr2[0].length];
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr2[0].length; j++) {
for (int k = 0; k < arr2.length; k++) {
arr3[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
print(arr3);
}
private static void print(int[][] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
/********** End **********/