#include #include using namespace std;

// 一元多项式的项 struct Term { int coefficient; // 系数 int exponent; // 次数 };

// 两个多项式相加 vector addPolynomials(vector& p1, vector& p2) { vector result; int i = 0, j = 0; while (i < p1.size() && j < p2.size()) { if (p1[i].exponent == p2[j].exponent) { int coefficient = p1[i].coefficient + p2[j].coefficient; if (coefficient != 0) { result.push_back({coefficient, p1[i].exponent}); } i++; j++; } else if (p1[i].exponent > p2[j].exponent) { result.push_back(p1[i]); i++; } else { result.push_back(p2[j]); j++; } } while (i < p1.size()) { result.push_back(p1[i]); i++; } while (j < p2.size()) { result.push_back(p2[j]); j++; } return result; }

int main() { int m, n; cin >> m >> n; vector p1(m), p2(n); for (int i = 0; i < m; i++) { cin >> p1[i].coefficient >> p1[i].exponent; } for (int i = 0; i < n; i++) { cin >> p2[i].coefficient >> p2[i].exponent; } vector result = addPolynomials(p1, p2); for (int i = result.size() - 1; i >= 0; i--) { cout << result[i].coefficient << ' ' << result[i].exponent << endl; } return 0; }

C++ 实现一元多项式相加算法

原文地址: https://www.cveoy.top/t/topic/gFl9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录