通过键盘输入两个任意多项式。 先输入第一个多项式,然后输入第二个多项式。 对每个多项式,先输入“项数”、分别输入各个元素的“指数”、“ 系数”。 2. 形如以下输出: A(x)=:7x^0+3x^1+9x^8+5x^17 B(x)=:8x^1+22x^7-9x^8 A(x)+B(x)=:7x^0+11x^1+22x^7+5x^17 A(x)*B(x)=: 对于空多项式请输出:0。 其中系数为1的项照样数1,指数为0、1照样把指数和系数输出来。c++语言编写
时间: 2023-10-15 13:08:09 浏览: 61
以下是C++语言实现多项式加法和乘法的代码,可以通过键盘输入两个任意多项式,然后输出它们的和和积:
```
#include <iostream>
#include <vector>
using namespace std;
// 定义多项式项的结构体
struct term {
int coef; // 系数
int exp; // 指数
};
// 多项式加法
vector<term> poly_add(vector<term> A, vector<term> B) {
vector<term> C;
int i = 0, j = 0;
while (i < A.size() && j < B.size()) {
if (A[i].exp == B[j].exp) {
int coef = A[i].coef + B[j].coef;
if (coef != 0) {
term t = {coef, A[i].exp};
C.push_back(t);
}
i++;
j++;
} else if (A[i].exp > B[j].exp) {
C.push_back(A[i]);
i++;
} else {
C.push_back(B[j]);
j++;
}
}
while (i < A.size()) {
C.push_back(A[i]);
i++;
}
while (j < B.size()) {
C.push_back(B[j]);
j++;
}
return C;
}
// 多项式乘法
vector<term> poly_mul(vector<term> A, vector<term> B) {
vector<term> C;
for (int i = 0; i < A.size(); i++) {
for (int j = 0; j < B.size(); j++) {
int coef = A[i].coef * B[j].coef;
int exp = A[i].exp + B[j].exp;
bool found = false;
for (int k = 0; k < C.size(); k++) {
if (C[k].exp == exp) {
C[k].coef += coef;
found = true;
break;
}
}
if (!found && coef != 0) {
term t = {coef, exp};
C.push_back(t);
}
}
}
return C;
}
// 输出多项式
void print_poly(vector<term> P, char name) {
cout << name << "(x)=";
if (P.empty()) {
cout << "0";
} else {
for (int i = 0; i < P.size(); i++) {
if (P[i].coef != 0) {
if (i != 0) {
cout << "+";
}
cout << P[i].coef << "x^" << P[i].exp;
}
}
}
cout << endl;
}
int main() {
// 输入第一个多项式
int n;
cout << "请输入第一个多项式的项数:";
cin >> n;
vector<term> A(n);
for (int i = 0; i < n; i++) {
cout << "请输入第一个多项式第" << i + 1 << "项的指数和系数:";
cin >> A[i].exp >> A[i].coef;
}
// 输入第二个多项式
cout << "请输入第二个多项式的项数:";
cin >> n;
vector<term> B(n);
for (int i = 0; i < n; i++) {
cout << "请输入第二个多项式第" << i + 1 << "项的指数和系数:";
cin >> B[i].exp >> B[i].coef;
}
// 输出多项式和积
print_poly(A, 'A');
print_poly(B, 'B');
vector<term> C = poly_add(A, B);
print_poly(C, 'A' + 'B');
C = poly_mul(A, B);
print_poly(C, 'A' * 'B');
return 0;
}
```
阅读全文