题解 | #矩阵乘法#

矩阵乘法

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

一次就AC,激动不已,三个for循坏

#include <algorithm>
#include <vector>

using namespace std;

void compute(vector<vector<int>> &A,vector<vector<int>> &B,
             vector<vector<int>> &out){
    
    int n = A[0].size();
    int x = A.size();
    int y = B[0].size();
    int sum = 0;
    for(int i = 0;i<x;i++){
        for(int j = 0;j<y;j++){
            for(int m = 0;m<n;m++){
                sum+=A[i][m]*B[m][j];
                
            }
            out[i][j] = sum;
            sum = 0;
        }
    }
    return ;
}


int main() {
    int x,y,z;
    while(cin>>x>>y>>z){
        vector<vector<int>> A(x,vector<int>(y,0));
        vector<vector<int>> B(y,vector<int>(z,0));
        vector<vector<int>> out(A.size(),vector<int>(B[0].size(),0));
        
        int temp;
        for(int i = 0;i<x;i++){
            for(int j = 0;j<y;j++){
                cin>>temp;
                A[i][j] = temp;
            }
        }
        for(int i = 0;i<y;i++){
            for(int j = 0;j<z;j++){
                cin>>temp;
                B[i][j] = temp;
            }
        }
            compute(A,B,out);
        for(int i = 0;i<out.size();i++){
            for(int j = 0;j<out[0].size();j++){
                cout<<out[i][j]<<' ';
            }
            cout<<endl;
        }
        
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务