。。。

导航

51nod 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
#include<stdio.h>
#include<string.h>
#define N 110
#define LL long long 
int n;
LL num1[N][N],num2[N][N],num[N][N];

int main()
{
    LL i,j,k;
    while(scanf("%d",&n)!=EOF)
    {
        memset(num,0,sizeof(num));
        for(i = 1; i <= n; i ++)
            for(j = 1; j <= n; j ++)
                scanf("%lld",&num1[i][j]);
        for(i = 1; i <= n; i ++)
            for(j = 1; j <= n; j ++)
                scanf("%lld",&num2[i][j]);
        for(i = 1; i <= n; i ++)
            for(j = 1; j <= n; j ++)
                for(k = 1; k <= n; k ++)
                    num[i][j] += num1[i][k]*num2[k][j];
        for(i = 1; i <= n; i ++)
        {
            for(j = 1; j < n; j ++)
                printf("%lld ",num[i][j]);
            printf("%lld\n",num[i][n]);
         } 
    }
    return 0;
}

 

posted on 2017-09-03 10:23  大学僧  阅读(116)  评论(0编辑  收藏  举报