给出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 <bits/stdc++.h> using namespace std; int main() { int a[150][150],b[150][150],c[150][150]; int n; scanf("%d",&n); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { scanf("%d",&a[i][j]); } } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { scanf("%d",&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++) { printf("%d ",c[i][j]); } printf(" "); } return 0; }