编写一个程序实现两个一元多项式相加的运算。 【输入形式】从标准输入中读入两行以空格分隔的整数,每一行代表一个多项式,且该多项式中各项的系数均为0或正整数,最高幂次不超过50。对于多项式 anxn + an-1xn-1+ ... + a1x1 + a0x0 (n<50)的表示方法如下: an n an-1 n-1 ... a1 1 a0 0 即相邻两个整数分别表示表达式中一项的系数和指数。在输入中只出现系数不为0的项。 【输出形式】将运算结果输出到屏幕。将系数不为0的项按指数从高到低的顺序输出,每次输出其系数和指数,均以一个空格分隔。在行的末尾也输出一个空格符,并且最后要求换行。
时间: 2024-03-06 20:51:59 浏览: 63
数据结构(C语言)用单链表存储一元多项式并实现两个多项式的相加运算.doc
5星 · 资源好评率100%
以下是 Python 3 的代码实现:
```python
# 读入两个多项式
poly1 = {}
poly2 = {}
for i in range(2):
line = input().strip().split()
for j in range(0, len(line), 2):
coef = int(line[j])
exp = int(line[j+1])
if i == 0:
poly1[exp] = poly1.get(exp, 0) + coef
else:
poly2[exp] = poly2.get(exp, 0) + coef
# 相加得到结果
result = {}
for exp, coef in poly1.items():
result[exp] = coef + result.get(exp, 0)
for exp, coef in poly2.items():
result[exp] = coef + result.get(exp, 0)
# 输出结果
for exp in sorted(result.keys(), reverse=True):
coef = result[exp]
print(coef, exp, end=' ')
print()
```
解释如下:
1. 首先读入两个多项式,存储为字典类型,键为指数,值为系数。
2. 然后将两个多项式相加得到结果,也存储为字典类型。
3. 最后按照指数从高到低的顺序输出每一项的系数和指数,以空格分隔,并在行的末尾输出一个空格符,最后换行。
注意,输入的多项式中只出现系数不为0的项,因此不需要特别处理。
阅读全文