Python每日一题——PTA甲级1002 A+B for Polynomials && 1009 Product of Polynomials

多项式加法和多项式乘法

思路

多项式加法:设置好一个最大长度列表,索引作为指数,对应元素作为相应系数,分别对两个多项式列表进行遍历,在对应指数进行相应系数加减
多项式乘法:嵌套遍历多项式列表,指数相加,系数相乘

需要注意的点

多项式相乘后指数最大为1000,因此l3最大要设置为2001

1002代码

l1=list(map(float,input().split()))
l2=list(map(float,input().split()))
k1,k2=int(l1[0]),int(l2[0])
l3=[0 for _ in range(1001)]
for i in range(1,k1+1):
    p=int(l1[i*2-1])
    l3[p]+=l1[i*2]
for j in range(1,k2+1):
    q=int(l2[j*2-1])
    l3[q]+=l2[j*2]
l4,c=[],0
for i in range(1000,-1,-1):
    if l3[i]!=0:
        c+=1
        l4.extend([i,round(l3[i],1)])
print(c,*l4)

1009代码

l1=list(map(float,input().split()))
l2=list(map(float,input().split()))
l3=[0 for i in range(2001)]
k1,k2=int(l1[0]),int(l2[0])
l1=l1[1:]
l2=l2[1:]
for i in range(k1):
    for j in range(k2):
        q=int(l1[i*2])+int(l2[j*2])
        l3[q]+=l1[i*2+1]*l2[j*2+1]
l4,c=[],0
for i in range(2000,-1,-1):
    if l3[i]!=0:
        c+=1
        l4.extend([i,round(l3[i],1)])
print(c,*l4)

参考文章

https://www.liuchuo.net/archives/2026

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值