C++ 多项式相加函数实现 - add(poly p1, poly p2)
以下是一个使用 C++ 编写的函数add,用于实现两个多项式p1和p2的相加操作。
#include <iostream>
#include <vector>
typedef struct {
int coef; // 系数
int exp; // 指数
} Term;
typedef std::vector<Term> Poly;
Poly add(Poly p1, Poly p2) {
Poly result;
int i = 0, j = 0;
while (i < p1.size() && j < p2.size()) {
if (p1[i].exp > p2[j].exp) {
result.push_back(p1[i]);
i++;
} else if (p1[i].exp < p2[j].exp) {
result.push_back(p2[j]);
j++;
} else {
Term term;
term.coef = p1[i].coef + p2[j].coef;
term.exp = p1[i].exp;
result.push_back(term);
i++;
j++;
}
}
// 将剩余的项加入到结果中
while (i < p1.size()) {
result.push_back(p1[i]);
i++;
}
while (j < p2.size()) {
result.push_back(p2[j]);
j++;
}
return result;
}
这个函数使用了 C++ 中的向量 (vector) 来表示多项式。多项式被定义为一个包含多个项 (Term) 的向量。每个项包含两个整数字段,coef表示系数,exp表示指数。
函数接受两个参数,分别是多项式p1和p2。函数通过遍历两个多项式的项,按照指数的大小进行相加操作。对于相同指数的项,将系数相加得到新的系数,并将结果加入到结果多项式result中。如果某个多项式已经处理完,将剩余的项直接加入到结果中。
最后,函数返回结果多项式result。
请注意,该函数假设系数和指数均为整数类型。您可以根据实际情况进行修改和优化。希望对您有帮助!
原文地址: https://www.cveoy.top/t/topic/hYH 著作权归作者所有。请勿转载和采集!