java题目 HJ69 矩阵乘法

描述

如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的
矩阵的大小不超过100*100

输入描述:

第一行包含一个正整数x,代表第一个矩阵的行数
第二行包含一个正整数y,代表第一个矩阵的列数和第二个矩阵的行数
第三行包含一个正整数z,代表第二个矩阵的列数
之后x行,每行y个整数,代表第一个矩阵的值
之后y行,每行z个整数,代表第二个矩阵的值

输出描述:

对于每组输入数据,输出x行,每行z个整数,代表两个矩阵相乘的结果

示例1

输入:
2
3
2
1 2 3
3 2 1
1 2
2 1
3 3
输出:
14 13
10 11
说明:
1 2 3
3 2 1 
乘以
1 2
2 1
3 3
等于
14 13
10 11 

 

 

 1 import java.util.*;
 2 
 3 public class Main {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         
 7         int x = sc.nextInt();  //第一个矩阵行
 8         int y = sc.nextInt();  //第一个矩阵列,  第二个矩阵的行
 9         int z = sc.nextInt();  //第二个矩阵的列
10         
11         int[][] first = new int[x][y];
12         int[][] second = new int[y][z];
13         int[][] third = new int[x][z];
14         
15         for(int i=0; i<x; i++) {
16             for(int j=0; j<y; j++) {
17                 first[i][j] = sc.nextInt();
18             }
19         }
20         
21         for(int i=0; i<y; i++) {
22             for(int j =0; j<z; j++) {
23                 second[i][j] = sc.nextInt();
24             }
25         }
26         
27         for(int i=0; i<x; i++) {
28             for(int j=0; j<z; j++){
29                 for(int k=0; k<y; k++) {
30                     third[i][j] = third[i][j] + first[i][k] * second[k][j];
31                 }
32                 //i=0行时,0,1,2,z-1列位置的值显示
33                 System.out.print(third[i][j] + " ");
34             }
35             // i=0行 遍历完后,换行显示
36             System.out.println();
37         }
38     }
39 }

 

posted @ 2022-03-13 16:13  海漠  阅读(94)  评论(0编辑  收藏  举报