题解 | #矩阵乘法#

矩阵乘法

https://www.nowcoder.com/practice/ebe941260f8c4210aa8c17e99cbc663b

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let [x, y, z] = [0,0,0]
let row = 0
// 矩陣A
const A = []
// 矩阵 B
const B = []
// 矩陣C
const C = []

rl.on('line', function (line) {
    row++
    if(row === 1){
        x = Number(line)
    }else if(row === 2){
        y = Number(line)
    }else if(row === 3){
        z = Number(line)
    }else if(row <= x + 3){
        A.push(line.split(' '))
    }else if(row <= x + 3 + y){
        B.push(line.split(' '))

        // 当是最后一行时
        if(row === x + 3 + y){
            // 结果数矩阵行
            for(let i = 0; i < x; i++){
                const row = []
                // 结果矩阵列
                for(let j = 0; j < z; j++){
                    let tmp = 0
                    let v = 0
                    // A矩阵行 与 B矩阵列乘积和即为 C矩阵某一个元素
                    while(tmp < y){
                        v += A[i][tmp] * B[tmp][j]
                        tmp++
                    }
                    // 保存C矩阵某个元素
                    row.push(v)
                }
                // C矩阵一行
                C.push(row)
            }
           C.forEach(row=>console.log(row.join(' ')))
        }

    }
});

全部评论

相关推荐

流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务