NC14557. 小明学数学
描述
输入描述
前四行分别代表矩阵 A 和 B 的行数和列数。接下来若干行分别是矩阵 A 和 B 的各个元素(按行输入)。
输出描述
输出乘积矩阵的各个元素。
示例1
输入:
2 3 3 2 1 2 3 4 5 6 1 4 2 5 3 6
输出:
14 32 32 77
C++11(clang++ 3.9) 解法, 执行用时: 3ms, 内存消耗: 380K, 提交时间: 2020-09-11 16:11:17
#include<cstdio> using namespace std; int A[1005][1005], B[1005][1005], C[1005][1005]; int main(){ int n1, m1, n2, m2, i, j, k, c; scanf("%d%d%d%d", &n1, &m1, &n2, &m2); for(i = 1;i <= n1;i++) for(j = 1;j <= m1;j++) scanf("%d", &A[i][j]); for(i = 1;i <= n2;i++) for(j = 1;j <= m2;j++) scanf("%d", &B[i][j]); for(i = 1;i <= n1;i++){ for(j = 1;j <= m2;j++){ for(k = 1, c = 0;k <= m1;k++)c += A[i][k] * B[k][j]; printf("%d\n", c); } }return 0; }
Python3(3.5.2) 解法, 执行用时: 27ms, 内存消耗: 3456K, 提交时间: 2017-12-28 09:18:18
a=int(input()) b=int(input()) c=int(input()) d=int(input()) g=[] h=[] for e in range(0,a*b): f=int(input()) g.append(f) for i in range(0,c*d): j=int(input()) h.append(j) for n in range(0,a): for k in range(0,d): m=0 for l in range(0,b): m=h[l*d+k]*g[l+n*b]+m print(m)