练习-Java数组之二维数值数组之矩阵乘

任务描述

本关任务:给定两个矩阵,求它们的乘积。 矩阵乘示例如下:

图1


图1 矩阵乘

从图 1 可以看到,相乘后的矩阵的行数等于第一个矩阵的行数,列数等于第二个矩阵的列数。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,给定以下两个矩阵,求它们的乘积。 矩阵一:

⎣⎢⎢⎢⎢⎢⎡​51532114​665438898​74322666​⎦⎥⎥⎥⎥⎥⎤​

矩阵二:

⎣⎢⎡​944838​65229​31066​877188​2198100​⎦⎥⎤​

测试说明

平台将运行你编写的程序代码,若你的运行结果与预期输出一致,则通关。

预期输出:

 
 
  1. 1024 540 617 1477 1393
  2. 6164 2352 3303 9704 10985
  3. 5908 2804 2444 7773 7086
  4. 5486 1065 737 7733 9455
  5. 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 **********/

Guess you like

Origin blog.csdn.net/qq_53149358/article/details/121305407