51nod 矩阵乘法

地址 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1137

1137 矩阵乘法
基准时间限制:1 秒 空间限制:131072 KB 分值: 0
给出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示例
2
1 0
0 1
0 1
1 0
Output示例
0 1
1 0

分析:矩阵乘法的模版题- -
贴一下敬爱的队长的介绍视频
http://www.bilibili.com/video/av8570006/?from=search&seid=6958108314519762445

代码如下:

#include <cstdio>
#include <algorithm>
using namespace std;
int M1[110][110];
int M2[110][110];
int M[110][110];
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&M1[i][j]);
     for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&M2[i][j]);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            M[i][j]=0;
            for(int k=1;k<=n;k++)
            M[i][j]+=M1[i][k]*M2[k][j];
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
           j==1?printf("%d",M[i][j]):printf(" %d",M[i][j]);
        }
        printf("\n");
    }
 } 

 

posted @ 2017-04-06 20:47  hinata_hajime  阅读(157)  评论(0编辑  收藏  举报