def area(x, y, n):
length = 2*n - 1
a = [0] * length
for i in range(n):
b = [0] * length
for j in range(n):
b[i+j] = y[i]*x[j]
a = [a[k]+b[k] for k in range(len(a))]
a = [str(i) for i in a]
return a
T= int(input())
rows = []
columns = []
for _ in range(T): n, d = map(int, input().split()) #n = int(n) x = list(map(int,input().split())) y = list(map(int, input().split())) #x = [int(i) for i in x] #y = [int(i) for i in y] if d == 0: rows.append(area(x,y,n)) columns.append(area(x,y[::-1],n)) else: rows.append(area(x,y[::-1],n)) columns.append(area(x,y,n))for i in range(T): print(" ".join(rows[i])) print(" ".join(columns[i]))
这题就是大数相乘的多项式求和。使用numpy可以一步解出来,代码如下:
import numpy as np
def area(x, y,):
con = list(np.convolve(x,y))
con = [str(i) for i in con】
return con
T= int(input())
rows = []
columns = []
for _ in range(T):
n, d = input().split()
n = int(n)
x = input().split()
y = input().split()
x = [int(i) for i in x]
y = [int(i) for i in y]
if d == '0':
rows.append(area(x,y))
columns.append(area(x,y[::-1]))
else:
rows.append(area(x,y[::-1]))
columns.append(area(x,y))
for i in range(T):
print(" ".join(rows[i]))
print(" ".join(columns[i]))
你的代码格式好像乱了
代码格式间隔混乱了
方便的话重新发送下
有问题及时沟通
python 对缩进是强要求的
python符号和缩进不对,本该一个循环的都串行了,而且多行代码不知道一行行不行,最好还是分开,还有注意标点