实现两个多项式相加运算:对具有相同指数的项,令其系数相加 | C++语言完成,直接输出可运行代码
时间: 2024-10-21 08:15:40 浏览: 13
在C++中,我们可以创建一个多项式类(Polynomial)来存储多项式的系数及其对应的指数。为了实现两个多项式相加,我们需要确保它们具有相同的项数并且对应位置的指数相同。以下是一个简单的实现,使用了std::map来存储系数和指数:
```cpp
#include <iostream>
#include <map>
class Polynomial {
public:
// 添加一个新的项到多项式
void addTerm(double coefficient, int exponent) {
terms[exponent] = coefficient;
}
// 将两个多项式相加
Polynomial operator+(const Polynomial& other) const {
Polynomial result;
for (const auto& term : terms) {
if (other.terms.find(term.first) != other.terms.end()) {
result.addTerm(term.second + other.terms[term.first], term.first);
} else {
result.addTerm(term.second, term.first);
}
}
return result;
}
private:
std::map<int, double> terms; // 存储项的系数和指数
};
// 输出多项式
void printPolynomial(const Polynomial& poly) {
for (const auto& term : poly.terms) {
std::cout << term.second << "x^" << term.first << " + ";
}
std::cout << "0\n"; // 注意最后一项不需要加和符号
}
int main() {
Polynomial p1;
p1.addTerm(2, 0); // 2x^0
p1.addTerm(3, 1); // 3x^1
Polynomial p2;
p2.addTerm(4, 0); // 4x^0
p2.addTerm(5, 1); // 5x^1
Polynomial sum = p1 + p2;
printPolynomial(sum);
return 0;
}
```
在这个例子中,`operator+`重载了加法操作符,使得你可以像`p1 + p2`一样直接对两个多项式进行相加。`printPolynomial`函数用于打印多项式。
阅读全文