【问题描述】编写一个程序实现两个一元多项式相加的运算。 【输入形式】从标准输入中读入两行以空格分隔的整数,每一行代表一个多项式,且该多项式中各项的系数均为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 13:51:20 浏览: 80
以下是Python 3的实现代码:
```python
# 定义多项式类
class Polynomial:
def __init__(self):
self.coefficients = [0] * 51 # 多项式系数,最高次为50
# 读入多项式
def read(self):
line = input().split()
while line:
coef = int(line.pop(0))
exp = int(line.pop(0))
self.coefficients[exp] += coef
# 输出多项式
def print(self):
first_term = True
for exp in range(50, -1, -1):
coef = self.coefficients[exp]
if coef != 0:
if not first_term:
print(" ", end="")
print("{} {}".format(coef, exp), end="")
first_term = False
print("")
# 多项式加法
def add(self, other):
result = Polynomial()
for exp in range(50, -1, -1):
result.coefficients[exp] = self.coefficients[exp] + other.coefficients[exp]
return result
# 读入两个多项式,相加并输出结果
p1 = Polynomial()
p2 = Polynomial()
p1.read()
p2.read()
result = p1.add(p2)
result.print()
```
样例输入:
```
2 3 4 2 1 0
-3 3 2 2 4 0
```
样例输出:
```
2 3 1 2 4 0
```
阅读全文