题解 | #矩阵乘法#
矩阵乘法
https://www.nowcoder.com/practice/ebe941260f8c4210aa8c17e99cbc663b
解题思路
- 循环找到arr1的每一行
- 循环找到arr2的每一列
- 循环arr1这一行的每一项去乘以arr2的这一列的对应项
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
let line1 = await readline();
let line2 = await readline();
let line3 = await readline();
let arr1 = [];
let arr2 = [];
for (let i = 0; i < line1; i++) {
arr1.push((await readline()).split(" "));
}
for (let i = 0; i < line2; i++) {
arr2.push((await readline()).split(" "));
}
let out = [];
// 用第一个数组的每一行的每一列,去乘以第二个数组的每一列
for(let i = 0;i<arr1.length;i++){ // i就是arr1的行号
// 这里就拿到了一行数据 arr1[i]
let item = []
// 再用数组2的每一列去乘以这行数据
for(let j = 0;j<arr2[0].length;j++){ // j 就是arr2的列号
// 这里就拿到数组2的每一列 arr2[0][j] arr2[1][j] ...
let sum = 0
for(let k = 0;k<arr1[0].length;k++){ // k就是arr1[i]行的列号
// arr1[i][k]
sum += arr1[i][k] * arr2[k][j]
}
item.push(sum)
}
out.push(item.join(" "))
}
out.forEach(v => console.log(v))
})();

