用c++实现两个一元多项式相加。
时间: 2024-10-23 16:14:15 浏览: 20
C++ 链表实现两个一元多项式相加
5星 · 资源好评率100%
在C++中,你可以通过定义一个结构体或者类来表示一元多项式,并包含系数和次数这两个属性。然后创建函数来实现两个多项式的加法操作。这里是一个简单的例子:
首先,我们定义一个一元多项式的结构体:
```cpp
struct Polynomial {
int coefficient; // 系数
int degree; // 次数
Polynomial(int c = 0, int d = 0) : coefficient(c), degree(d) {}
};
```
接着,我们可以创建一个函数来计算两个多项式的和:
```cpp
Polynomial addPolynomials(const Polynomial& poly1, const Polynomial& poly2) {
if (poly1.degree < poly2.degree)
std::swap(poly1, poly2); // 如果第一个的次数小,交换它们
Polynomial result = poly1;
for (int i = poly1.degree - poly2.degree; i >= 0; --i) {
result.coefficient += poly2.coefficient * pow(10, i);
result.degree -= 1;
}
return result;
}
```
这个`addPolynomials`函数先检查哪个多项式的次数较大,然后从次数较大的多项式开始逐位相加。如果当前位置有非零项,它会添加相应乘积并减去一次次数。
示例用法:
```cpp
int main() {
Polynomial p1(2, 1); // 2x + 0
Polynomial p2(3, 2); // 3x^2 + 0
Polynomial sum = addPolynomials(p1, p2); // 现在sum是5x^1 + 0 或者 5x + 0
std::cout << "Result polynomial: " << sum.coefficient << "x^" << sum.degree << std::endl;
return 0;
}
```
阅读全文