1. 程式人生 > 其它 >java題目 HJ69 矩陣乘法

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 }