L1-048 矩阵A乘以B (15 分)
记录这道题的原因很简单,我有时候会忘记矩阵怎么相乘......
上题:https://pintia.cn/problem-sets/994805046380707840/problems/994805082313310208
分析:矩阵A * 矩阵B的结果矩阵C, 有 C[i][j] += A[i][k] * B[k][j] 其中k为矩阵A的列,矩阵B的行 手动模拟一遍~
贴上代码:
#includeusing namespace std; int A[1010][1010], B[1010][1010], c[1010][1010]; int main() { int m, n, mm, nn; cin >> m >> n; for(int i = 1; i <= m; i++) { for(int j = 1; j <= n; j++) cin >> A[i][j]; } cin >> mm >> nn; for(int i = 1; i <= mm; i++) { for(int j = 1; j <= nn; j++) cin >> B[i][j]; } if(n != mm) printf("Error: %d != %d", n, mm); else { cout << m << ' ' << nn << endl; for(int i = 1; i <= m; i++) { for(int j = 1; j <= nn; j++) { for(int k = 1; k <= mm; k++) c[i][j] += A[i][k] * B[k][j]; if(j!=nn) cout << c[i][j] << ' '; else cout << c[i][j] << endl; } } } return 0; }