计算两个矩阵的乘法。n*m
阶的矩阵A
乘以m*k
阶的矩阵B
得到的矩阵C
是n*k
阶的,且C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + …… +A[i][m-1]*B[m-1][j]
(C[i][j]
表示C
矩阵中第i
行第j列元素)。
输入
第一行为n
,m
, k
,表示A
矩阵是n
行m
列,B
矩阵是m
行k
列,n
, m
, k
均小于100
然后先后输入A
和B
两个矩阵,A
矩阵n
行m
列,B
矩阵m
行k
列,矩阵中每个元素的绝对值不会大于1000
。
输出
输出矩阵C
,一共n
行,每行k
个整数,整数之间以一个空格分开。
样例输入
3 2 3 1 1 1 1 1 1 1 1 1 1 1 1
样例输出
2 2 2 2 2 2 2 2 2
代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { int [][] a = new int [110][110]; int [][] b = new int [110][110]; int [][] c = new int [110][110]; Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int m = scanner.nextInt(); int k = scanner.nextInt(); for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) a[i][j] = scanner.nextInt(); for (int i = 0; i < m; i++) for (int j = 0; j < k; j++) b[i][j] = scanner.nextInt(); scanner.close(); for(int i = 0; i <= n - 1; i++) for(int j = 0; j <= k; j++) for(int t = 0; t <= m; t++) c[i][j] += a[i][t] * b[t][j]; for(int i = 0; i < n ; i++){ for(int j = 0; j < k; j++){ System.out.print(c[i][j] + " "); } System.out.println(" "); } } }