pta7-1一元多项式的加法
时间: 2024-05-05 11:23:03 浏览: 17
给定两个一元多项式 $A(x)$ 和 $B(x)$,求它们的和 $C(x)=A(x)+B(x)$。
一元多项式的一般形式为 $a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0$,其中 $n$ 为多项式的次数,$a_n,\cdots,a_0$ 为多项式的系数。
我们可以按照多项式次数从高到低的顺序,依次对两个多项式对应项相加,得到结果多项式。具体操作如下:
1. 定义一个数组 `c` 存储结果多项式的系数。
2. 从高到低遍历多项式,对于每一项,将它们的系数相加,存入数组 `c` 中对应的位置。
3. 将数组 `c` 转换为一元多项式输出即可。
C++ 代码如下:
```
#include <iostream>
using namespace std;
const int N = 1010;
int a[N], b[N], c[N];
int main()
{
int n, m;
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
cin >> m;
for (int i = 0; i < m; i++) cin >> b[i];
int k = max(n, m);
for (int i = 0; i < k; i++)
c[i] = (i < n ? a[i] : 0) + (i < m ? b[i] : 0);
while (k > 0 && c[k - 1] == 0) k--;
if (k == 0) cout << 0 << endl;
else
{
cout << k;
for (int i = k - 1; i >= 0; i--)
cout << ' ' << c[i];
cout << endl;
}
return 0;
}
```
其中,我们用数组 `a` 和 `b` 分别存储两个输入的多项式,数组 `c` 存储结果多项式。在遍历的过程中,我们需要注意多项式系数不足时需要补零,以及输出结果要去掉前导零。