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 @   海漠  阅读(107)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示