51nod 1137 矩阵乘法

来源:互联网 发布:部落冲突各本升级数据 编辑:程序博客网 时间:2024/05/18 18:54
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示例
21 00 10 11 0
Output示例
0 11 0
#include <iostream>#include <stdio.h>#include <string.h>#include <stdio.h>#define M(n,m) memset(n,m,sizeof(n));using namespace std;int a[111][111];int b[111][111];int c[111][111];int n;void Judge(int x,int y){    int sum = 0;    for(int i = 1;i <= n;i ++)        sum += a[x][i] * b[i][y];    c[x][y] = sum;}int main(){    while(~scanf("%d",&n)){        M(a,0)        M(b,0)        M(c,0)        for(int i = 1;i <= n;i ++)            for(int j = 1;j <= n;j ++)                scanf("%d",&a[i][j]);        for(int i = 1;i <= n;i ++)            for(int j = 1;j <= n;j ++)                scanf("%d",&b[i][j]);        for(int i = 1;i <= n;i ++)            for(int j = 1;j <= n;j ++)            Judge(i,j);        for(int i = 1;i <= n;i ++){            for(int j = 1;j < n;j ++)                printf("%d ",c[i][j]);            printf("%d\n",c[i][n]);        }    }}


0 0
原创粉丝点击