已更新最新代码
n1,m1 = map(int,input().split())
a1 = []
a2 = []
for i in range(n1):
a = list(map(int,input().split()))
a1.append(a)
n2,m2 = map(int,input().split())
for i in range(n2):
a = list(map(int,input().split()))
a2.append(a)
if m1!=n2:
print(f"Error: {m1} != {n2}")
else:
print(n1,m2)
for i1 in range(n1):
d1 = a1[i1]
hk = []
for j2 in range(m2):
num = 0
for i2 in range(n2):
num += d1[i2]*a2[i2][j2]
hk.append(num)
print(*hk)
给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有R a行,Ca 列,B有Rb行、Cb列,则有Ca与Rb相等时,两个矩阵才能相乘。
输入格式:
输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过100。
输出格式:
若输入的两个矩阵的规模是匹配的,则按照输入的格式输出乘积矩阵AB,否则输出Error: Ca != Rb,其中Ca是A的列数,Rb是B的行数。
输入样例1:
2 3
1 2 3
4 5 6
3 4
7 8 9 0
-1 -2 -3 -4
5 6 7 8
输出样例1:
2 4
20 22 24 16
53 58 63 28
输入样例2:
3 2
38 26
43 -5
0 17
3 2
-11 57
99 68
81 72
输出样例2:
Error: 2 != 3
具体·代码如下:
a,b = map(int,input().split())
l1 = []
for i in range(a):
a1 = list(map(int,input().split()))
l1.append(a1)
c,d = map(int,input().split())
l2 = []
for i in range(c):
c1 = list(map(int,input().split()))
l2.append(c1)
l3 = []
if b==c:
for i in range(a):
for j in range(d):
s = 0
for k in range(c):
s = s+l1[i][k]*l2[k][j]
l3.append(s)
print(f"{a} {d}")
x = 0
z = ""
for i in range(len(l3)):
z = z+" "+str(l3[i])
x +=1
if x==len(l3)//a:
print(z.lstrip())
z = ""
x = 0
else:
print(f"Error: {b} != {c}")