创建一个一元多项式,实现多项式的相加运算。C++dev
时间: 2024-12-18 19:33:28 浏览: 7
在C++中,我们可以创建一个一元多项式类(Polynomial),其中包含一个数组来存储系数和一个常数项,用于表示多项式的各项。为了实现多项式的相加运算,我们需要定义一些操作:
```cpp
class Polynomial {
private:
int degree;
std::vector<double> coefficients;
public:
// 构造函数,初始化常数项
Polynomial(double a = 0) : degree(0), coefficients(1, a) {}
// 添加一项到多项式
void addTerm(double coefficient, int exponent) {
if (exponent > degree) {
coefficients.resize(degree + 1);
}
coefficients[degree] += coefficient;
degree = std::max(degree, exponent);
}
// 相加两个多项式
Polynomial operator+(const Polynomial& other) const {
Polynomial result(*this); // 深拷贝当前多项式
for (size_t i = 0; i < other.coefficients.size(); ++i) {
result.addTerm(other.coefficients[i], i);
}
return result;
}
// 输出多项式字符串形式
friend std::ostream& operator<<(std::ostream& os, const Polynomial& poly) {
os << "Polynomial: ";
for (int i = 0; i <= poly.degree; ++i) {
os << (i == 0 ? "" : " + ") << poly.coefficients[i] << "x^" << i;
}
return os;
}
};
// 示例
int main() {
Polynomial p1(2);
p1.addTerm(3, 1); // 2 + 3x
Polynomial p2(4);
p2.addTerm(-1, 2); // 4 - x^2
Polynomial sum = p1 + p2; // 相加
std::cout << "Sum of p1 and p2 is: " << sum << std::endl;
return 0;
}
```
在这个例子中,`operator+`使得可以像处理普通数值一样对多项式进行加法。注意,这里假设输入的多项式都有相同的最大指数以便于直接相加。
阅读全文