题解 | #矩阵乘法#

矩阵乘法

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

do_work(Matrix1,Matrix2,Matrix1.size(),Matrix1[0].size(),Matrix2[0].size());

//注意,m,n,k已经变了,不能把m,n,k传进去

#include <iostream>
#include <bits/stdc++.h>
#include <vector>
using namespace std;
void do_work(vector<vector<int>>&Matrix1,vector<vector<int>>&Matrix2,int m,int n,int k);
int mul(vector<vector<int>>&Matrix1,int hang,vector<vector<int>>&Matrix2,int lie,int m,int n);
int main() {
    int m,n,k;
    while(cin>>m>>n>>k){
        vector<vector<int>> Matrix1(m,vector<int>(n));
        vector<vector<int>> Matrix2(n,vector<int>(k));
        int number;
        int hangindex = 0;
        while(m--){
            int j = n;
            int lieindex = 0;
            while(j--){
                cin>>number;
                Matrix1[hangindex][lieindex]=number;
                lieindex++;
            }
            hangindex++;
        }
        hangindex = 0;
        while(n--){
            int j = k;
            int lieindex = 0;
            while(j--){
                cin>>number;
                Matrix2[hangindex][lieindex]=number;
                lieindex++;
            }
            hangindex++;
            
        }
        //准备好了两个矩阵,对他们进行运算
        do_work(Matrix1,Matrix2,Matrix1.size(),Matrix1[0].size(),Matrix2[0].size());
        //注意,m,n,k已经变了,不能把m,n,k传进去
    }
}

void do_work(vector<vector<int>>&Matrix1,vector<vector<int>>&Matrix2,int m,int n,int k){
    vector<vector<int>>result(m,vector<int>(k));
    //vector<vector<int>>result(Matrix1.size(),vector<int>(Matrix2[0].size()));
    for(int i = 0;i<m;i++){
        for(int j = 0;j<k;j++){
            result[i][j] = mul(Matrix1,i,Matrix2,j,m,n);
        }
    }
    for(int i = 0;i<m;i++){
        for(int j = 0;j<k;j++){
            cout<<result[i][j]<<" ";
        }
        cout<<endl;
    }
}
int mul(vector<vector<int>>&Matrix1,int hang,vector<vector<int>>&Matrix2,int lie,int m,int n){
    int result = 0;
    for(int i = 0;i<n;i++){
        result += Matrix1[hang][i]*Matrix2[i][lie];
    }
    return result;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不要停下啊:大二打开牛客,你有机会开卷了,卷起来,去找课程学习,在牛客上看看大家面试笔试都需要会什么,岗位有什么需求就去学什么,努力的人就一定会有收获,这句话从来都经得起考验,像我现在大三了啥也不会,被迫强行考研,炼狱难度开局,啥也不会,找工作没希望了,考研有丝丝机会
点赞 评论 收藏
分享
07-10 12:17
已编辑
商丘师范学院 Java
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
无实习如何秋招上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 12:02
ssob上原来真有BOSS啊
硫蛋蛋:这种也是打工的,只不是是给写字楼房东打工
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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