给出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 ",num[i][n]); } } return 0; }