编写程序,求两个关于 x 的一元多项式的乘积。
测试说明
输入描述:
输入分三行,
第一行给出第一个多项式的系数和指数;
第二行给出第二个多项式的系数和指数;
第三行给出x的值。
数据规模如下:
1<=多项式的项数<=20
1<=多项式的系数<=20
1<=多项式的各项指数<=20
1<=x<=10
输出描述:
输出为一行,为多项式相乘后带入得到的结果。
输出结尾不能有多余空格。
测试输入1:
2 3 4 5
1 3 3 6
2
预期输出1:
28800
测试输入2:
2 5 0 8
1 0 1 5 2 3
3
预期输出2:
144828
样例解析:
对于第一个输入样例,
第一个多项式为: 2∗x∗∗3+4∗x∗∗5
第二个多项式为: x∗∗3+3∗x∗∗6
两个多项式相乘的果为:2∗x∗∗6+6∗x∗∗9+4∗x∗∗8+12∗x∗∗11
带入x=2后,结果为 28800
代码如下:
s = list(map(int,input().split()))
t = list(map(int,input().split()))
x = int(input())
L= []
M =[] #定义两个空列表,分别用来保存多项式的系数
for i in range(1,len(s)+1): #关键算法
if(i % 2 != 0):
m = 0
m += s[i-1]
else:
m = m *(x ** s[i-1])
L.append(m)
n = sum(L) #对第一个多项式求和
for i in range(1,len(t)+1):
if(i % 2 != 0):
m = 0
m += t[i-1]
else:
m = m *(x ** t[i-1])
M.append(m)
m = sum(M) #对第二个多项式求和
sum = n*m #两个多项式的乘积
print(sum)