题目描述:如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C。这个矩阵的每个元素是由下面的公式决定的
矩阵的大小不超过100*100
题目地址:
https://www.nowcoder.com/questionTerminal/ebe941260f8c4210aa8c17e99cbc663b
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {//多组矩阵输入
int r = sc.nextInt();
int c = sc.nextInt();
int n = sc.nextInt();
int[][] array1 = new int[r][c];
int[][] array2 = new int[c][n];
int[][] result = new int[r][n];
for (int i = 0; i < array1.length; i++) {// 初始化
for (int j = 0; j < array1[i].length; j++) {
array1[i][j] = sc.nextInt();
}
}
for (int i = 0; i < array2.length; i++) {// 初始化
for (int j = 0; j < array2[i].length; j++) {
array2[i][j] = sc.nextInt();
}
}
solve(array1,array2,result);
for (int i = 0; i < result.length; i++) {//输出矩阵
for (int j = 0; j < result[i].length; j++) {
System.out.print(result[i][j] + " ");
}
System.out.println();//换行
}
}
}
public static int[][] solve(int[][] a,int[][] b,int[][] result){
int x=a.length;
int z=b[1].length;
for (int k = 0; k < x; k++) {// r
for (int i = 0; i < z; i++) {// n
int temp=0;
for (int j = 0; j < b.length; j++) {// c
temp += a[k][j] * b[j][i];// result[k][i]+= array1[k][j] * array2[j][i];
}
result[k][i] = temp;
}
}
return result;
}
}