51nod--1137 矩阵乘法

来源:互联网 发布:吉吉影音播放器mac版 编辑:程序博客网 时间:2024/05/18 20:08

题目:  给出2个N * N的矩阵M1和M2,输出2个矩阵相乘后的结果。


Input
第1行:1个数N,表示矩阵的大小(2 <= N <= 100)第2 - N + 1行,每行N个数,对应M1的1行(0 <= M1[i] <= 1000)第N + 2 - 2N + 1行,每行N个数,对应M2的1行(0 <= M2[i] <= 1000)
Output
输出共N行,每行N个数,对应M1 * M2的结果的一行。
Input示例
21 00 10 11 0
Output示例
0 11 0
     纯数学矩阵乘法,按相关数学定义即好:
    eg: 
         
关键代码:
 for(int i=0; i<n; i++)        for(int j=0; j<n; j++)        {            c[i][j]=0;            for(int k=0; k<n; k++)            {                c[i][j]+=(a[i][k]*b[k][j]);            }        }


完整代码:
#include <iostream>using namespace std;int main(){    int n;    cin >> n;    int a[n][n];    int b[n][n];    int c[n][n];    for(int i=0; i<n; i++)        for(int j=0; j<n; j++)            cin >> a[i][j];    for(int i=0; i<n; i++)        for(int j=0; j<n; j++)            cin >> b[i][j];    for(int i=0; i<n; i++)        for(int j=0; j<n; j++)        {            c[i][j]=0;            for(int k=0; k<n; k++)            {                c[i][j]+=(a[i][k]*b[k][j]);            }        }    for(int i=0; i<n; i++)    {        for(int j=0; j<n; j++)            cout << c[i][j] << " " ;        cout << endl;    }    return 0;}
 
原创粉丝点击