蓝桥杯-矩阵乘法(java)
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯-矩阵乘法(java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
算法訓練 矩陣乘法 時間限制:1.0s 內存限制:512.0MB問題描述輸入兩個矩陣,分別是m*s,s*n大小。輸出兩個矩陣相乘的結果。輸入格式第一行,空格隔開的三個正整數m,s,n(均不超過200)。接下來m行,每行s個空格隔開的整數,表示矩陣A(i,j)。接下來s行,每行n個空格隔開的整數,表示矩陣B(i,j)。輸出格式m行,每行n個空格隔開的整數,輸出相乘後的矩陣C(i,j)的值。樣例輸入2 3 21 0 -11 1 -30 31 23 1樣例輸出-3 2-8 2提示矩陣C應該是m行n列,其中C(i,j)等于矩陣A第i行行向量與矩陣B第j列列向量的內積。例如樣例中C(1,1)=(1,0,-1)*(0,1,3) = 1 * 0 +0*1+(-1)*3=-3
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int m = scan.nextInt();int s = scan.nextInt();int n = scan.nextInt();int[][] matrix1 = new int[m][s];int[][] matrix2 = new int[s][n];int[][] sum = new int[m][n];for(int i=0 ; i<m ; i++) {for(int j=0 ; j<s ; j++) {matrix1[i][j] = scan.nextInt();}}for(int i=0 ; i<s ; i++) {for(int j=0 ; j<n ; j++) {matrix2[i][j] = scan.nextInt();}}for(int i=0 ; i<m ; i++) {for(int j=0 ; j<n ; j++) {for(int k=0 ; k<s ; k++) {sum[i][j] += matrix1[i][k]*matrix2[k][j];}}}for(int i=0 ; i<m ; i++) {for(int j=0 ; j<n ; j++) {System.out.print(sum[i][j] + " ");}System.out.println();}}
}
總結
以上是生活随笔為你收集整理的蓝桥杯-矩阵乘法(java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯-删除数组零元素(java)
- 下一篇: 蓝桥杯-字串统计(java)