题解 | #矩阵乘法#
矩阵乘法
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)) })();