输入整数m、p、n,再输入一个m行p列的整数矩阵A和一个p行n列的整数矩阵B,求两个矩阵的乘积AB
输入格式:
测试数据有多组,处理到文件尾。每组测试数据的第一行输入m、p、n(1<m,p,n<10),接下来分别输入A矩阵和B矩阵。
输出格式:
对于每组测试,输出m行,每行n个整数,表示AB的结果,每行中每两个数据之间留一个空格。
输入样例:
4 3 2
5 2 4
3 8 2
6 0 4
0 1 6
2 4
1 3
3 2
2 2 3
1 2
3 4
5 6 7
7 8 9
输出样例:
24 34
20 40
24 32
19 15
19 22 25
43 50 57
代码如下:
while True:
try:
m, p, n = input().split()
m, p, n = int(m), int(p), int(n)
a, b, d = [], [], list([0]*n for i in range(m))
#创建m行n列二维列表格式:[[],[],[]]
for _ in range(m):
c = list(map(int, input().split()))
a.append(c)
for _ in range(p):
c = list(map(int, input().split()))
b.append(c)
for i in range(m):
for j in range(n):
for k in range(p):
d[i][j] += a[i][k] * b[k][j]
for i in d:
print(' '.join(map(str, i)))
#join函数将列表转化为字符串
except:
break
#[0]*n创建一个长度为n的列表,并且把所有元素初始化为0
#list([0]*n for i in range(m))创建m个长度为n的列表后,使其变成一个大列表,格式为[[],[],[],……]