编写算法实现两个一元多项式相加,要求:先定义数据类型,然后在所定义的数据类型上实现
时间: 2024-12-28 17:40:56 浏览: 9
为了编写一个算法来实现两个一元多项式的相加,我们首先需要定义一个数据结构来表示多项式的系数和次数。这里我们可以创建一个名为`Polynomial`的类,包含两个列表:`coefficients`存储多项式的各项系数,`degrees`存储对应的次数。假设最高次项的系数是正数。
```python
class Polynomial:
def __init__(self):
self.coefficients = []
self.degrees = []
def add_coefficient(self, coefficient, degree):
if degree >= len(self.degrees) or not self.degrees or degree > self.degrees[-1]:
self.degrees.append(degree)
self.coefficients.append(coefficient)
def __add__(self, other):
# 创建一个新的多项式来保存结果
result = Polynomial()
# 对应位置系数相加,如果其他多项式某项不存在,则认为其系数为0
for i in range(max(len(self.degrees), len(other.degrees))):
self_coefficient = self.coefficients[i] if i < len(self.degrees) else 0
other_coefficient = other.coefficients[i] if i < len(other.degrees) else 0
result.add_coefficient(self_coefficient + other_coefficient, i)
return result
# 示例使用
p1 = Polynomial()
p1.add_coefficient(2, 0) # x^0 + 2
p1.add_coefficient(1, 1) # x + 1
p2 = Polynomial()
p2.add_coefficient(3, 2) # 3x^2
sum_poly = p1 + p2
```
在这个例子中,`__add__`是一个魔术方法,当两个`Polynomial`实例相加时会被自动调用。这个方法实现了两个多项式的对应项系数相加,并创建一个新的`Polynomial`对象来存储结果。
阅读全文