郑州轻工业大学2020年数据结构练习集-7-1 一元多项式的乘法与加法运算 (20分)(python)

设计函数分别求两个一元多项式的乘积与和。

输入格式:

输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

输出格式:

输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0

输入样例:

4 3 4 -5 2  6 1  -2 0
3 5 20  -7 4  3 1

输出样例:

15 24 -25 22 30 21 -10 20 -21 8 35 6 -33 5 14 4 -15 3 18 2 -6 1
5 20 -4 4 -5 2 9 1 -2 0

# -*- coding: utf-8 -*-
# @Author: wfy
# @Date:   2020-02-03 19:02:49
# @Last Modified by:   wfy
# @Last Modified time: 2020-02-24 21:36:06
x1 = list(map(int, input().split()))
x2 = list(map(int, input().split()))
x1.pop(0)
x2.pop(0)
d = {}


def to_prn(d, d1, l):
    if d:
        for key in d1:
            if d[key] == 0:
                continue
            l.append(d[key])
            l.append(key)
    if l:
        print(*l)
    else:
        print("0 0")


def to_add(x):
    for i in range(0, len(x), 2):
        n = x[i + 1]
        c = x[i]
        if n in d:
            d[n] += c
        else:
            d[n] = c


for i in range(0, len(x1), 2):
    for j in range(0, len(x2), 2):
        c = x1[i] * x2[j]
        n = x1[i + 1] + x2[j + 1]
        if n in d:
            d[n] += c
        else:
            d[n] = c
d1 = sorted(d, reverse=True)
to_prn(d, d1, [])
# 加法
d.clear()
to_add(x1)
to_add(x2)
d1 = sorted(d, reverse=True)
to_prn(d, d1, [])
发布了67 篇原创文章 · 获赞 22 · 访问量 7184

猜你喜欢

转载自blog.csdn.net/weixin_43906799/article/details/104536629