#include <iostream>
#include <list>
struct Term {
int coefficient; // 系数
int exponent; // 指数
Term(int coef, int exp) : coefficient(coef), exponent(exp) {}
};
class Polynomial {
public:
std::list<Term> terms; // 存储多项式项的列表
// 构造函数
Polynomial() {}
// 从初始化列表构造多项式
Polynomial(std::initializer_list<Term> init) : terms(init) {}
// 多项式加法
Polynomial operator+(const Polynomial& other) {
Polynomial result;
auto it1 = terms.begin();
auto it2 = other.terms.begin();
while (it1 != terms.end() && it2 != other.terms.end()) {
if (it1->exponent == it2->exponent) {
// 指数相同,合并系数
result.terms.emplace_back(it1->coefficient + it2->coefficient, it1->exponent);
++it1;
++it2;
}
else if (it1->exponent > it2->exponent) {
// 当前多项式的指数较大
result.terms.emplace_back(it1->coefficient, it1->exponent);
++it1;
}
else {
// 其他多项式的指数较大
result.terms.emplace_back(it2->coefficient, it2->exponent);
++it2;
}
}
// 处理剩余的项
while (it1 != terms.end()) {
result.terms.emplace_back(it1->coefficient, it1->exponent);
++it1;
}
while (it2 != other.terms.end()) {
result.terms.emplace_back(it2->coefficient, it2->exponent);
++it2;
}
return result;
}
// 打印多项式
void print() const {
for (auto it = terms.begin(); it != terms.end(); ++it) {
if (it != terms.begin() && it->coefficient > 0) {
std::cout << " + "; // 正系数前加 +
}
std::cout << it->coefficient << "x^" << it->exponent;
}
std::cout << std::endl;
}
};
int main() {
// 初始化多项式
Polynomial p1 = { {3, 2}, {4, 1}, {5, 0} }; // 3x^2 + 4x + 5
Polynomial p2 = { {2, 1}, {1, 0} }; // 2x + 1
// 打印多项式
std::cout << "Polynomial 1: ";
p1.print();
std::cout << "Polynomial 2: ";
p2.print();
// 多项式加法
Polynomial p3 = p1 + p2;
std::cout << "Sum: ";
p3.print();
return 0;
}
利用链表实现多项式的加法
原创wx66168934b64d5 ©著作权
©著作权归作者所有:来自51CTO博客作者wx66168934b64d5的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:相位偏折法(PMD)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
简单的尾插法实现单链表
尾插法建立单链表
结点 头结点 链表 -
单链表的使用——计算多项式加法
多项式加法 好像输出很麻烦(=@__@=)
算法solution i++ 多项式 #include 数据 -
用单向链表实现一元多项式加法
用单向链表实现一元多项式的加法
算法 单向链表 -
单链表实现多项式相加
循环链表
单链表 多项式相加 链表 多项式 结点 -
自定义资源接入监控系统
一 问题由来?在同一个系统中如果使用多个数据源 当一个服务方法里面调用另一个服务类的方法 而这两个服务操作的不是同一个同一个数据库 那么@Tranactional将会失效 我们常用的DataSourceTransactionManager事务管理器就不管用了 这种情况无法实现事务的原子性了 
自定义资源接入监控系统 mysql spring spring boot 数据库连接