题解 | #矩阵乘法#
矩阵乘法
https://www.nowcoder.com/practice/ebe941260f8c4210aa8c17e99cbc663b
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const inputs = []; rl.on("line", function (line) { inputs.push(line); }); const CalRect = (arr1, arr2) => { const res = []; // console.log(arr1, arr2) if(!arr2.length){ arr2 = arr1.splice(arr1.length/2) } // console.log(arr2, arr1) // if (hang !== lie) { // console.log("行列不一致"); // return []; // } // console.log('hang lie 是',hang,lie) for (let k = 0; k < arr1.length; k++) { if (!res[k]) { res[k] = []; } for (let i = 0; i < arr2[0].length; i++) { let sum = 0; arr1[k].forEach((val, key) => { // console.log("val * arr2", val, arr2[key][i]); sum += val * arr2[key][i]; }); // console.log(sum) res[k][i] = sum; } } return res; }; rl.on("close", () => { const rect1 = []; const rect2 = []; inputs.splice(0, 3); // console.log(inputs) for (let val of inputs) { const line = val.split(" "); if (rect1[0] !== undefined && line.length === rect1[0].length) { rect1.push(line); continue; } if (rect1[0] !== undefined && line.length !== rect1[0].length) { rect2.push(line); continue; } rect1.push(line); } const result = CalRect(rect1, rect2); for( let num of result){ console.log(num.join(' ')) } // console.log(result); });