c++实现 一元多项式的创建和一元多项式的相加以及运行结果
时间: 2024-03-14 08:48:30 浏览: 76
好的,下面是完整的一元多项式的创建和一元多项式的相加的示例代码,以及运行结果:
```c++
#include <iostream>
using namespace std;
const int MAXN = 1000; // 多项式最高次数
int a[MAXN]; // 存储多项式1的系数
int b[MAXN]; // 存储多项式2的系数
int c[MAXN]; // 存储相加后的多项式的系数
// 创建多项式
void createPoly(int poly[]) {
int n;
cout << "请输入多项式的最高次数:";
cin >> n; // 多项式的最高次数
for (int i = 0; i <= n; i++) {
cout << "请输入 x^" << i << " 的系数:";
cin >> poly[i]; // 输入多项式的系数
}
}
// 输出多项式
void printPoly(int poly[]) {
int k = 0;
for (int i = MAXN-1; i >= 0; i--) {
if (poly[i] != 0) {
k = i;
break;
}
}
for (int i = k; i >= 0; i--) {
if (poly[i] != 0) {
if (i == k) {
cout << poly[i] << "x^" << i;
} else {
cout << " + " << poly[i] << "x^" << i;
}
}
}
cout << endl;
}
// 相加多项式
void addPoly(int poly1[], int poly2[], int res[]) {
int n = 0, m = 0;
for (int i = MAXN-1; i >= 0; i--) {
if (poly1[i] != 0) {
n = i;
break;
}
}
for (int i = MAXN-1; i >= 0; i--) {
if (poly2[i] != 0) {
m = i;
break;
}
}
int k = max(n, m); // 新多项式的最高次数
for (int i = 0; i <= k; i++) {
res[i] = poly1[i] + poly2[i]; // 将两个多项式的系数相加
}
}
int main() {
cout << "请输入第一个多项式:" << endl;
createPoly(a); // 创建多项式1
cout << "第一个多项式为:";
printPoly(a); // 输出多项式1
cout << "请输入第二个多项式:" << endl;
createPoly(b); // 创建多项式2
cout << "第二个多项式为:";
printPoly(b); // 输出多项式2
addPoly(a, b, c); // 相加多项式
cout << "相加后的多项式为:";
printPoly(c); // 输出相加后的多项式
return 0;
}
```
运行结果如下:
```
请输入第一个多项式:
请输入多项式的最高次数:2
请输入 x^0 的系数:1
请输入 x^1 的系数:2
请输入 x^2 的系数:3
第一个多项式为:3x^2 + 2x^1 + 1x^0
请输入第二个多项式:
请输入多项式的最高次数:1
请输入 x^0 的系数:4
请输入 x^1 的系数:5
第二个多项式为:5x^1 + 4x^0
相加后的多项式为:3x^2 + 7x^1 + 5x^0
```
以上就是一元多项式的创建和一元多项式的相加的完整示例代码和运行结果。
阅读全文