java題目 HJ69 矩陣乘法
阿新 • • 發佈:2022-03-13
描述
如果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 }