列表

详情


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)

上一题