要求两个多项式的和,可以将两个多项式的系数相加。
假设有两个多项式 P1 和 P2,分别为:
P1 = a1x^n + a2x^(n-1) + … + an*x + a(n+1)
P2 = b1x^m + b2x^(m-1) + … + bm*x + b(m+1)
其中,n 是 P1 的最高次数,m 是 P2 的最高次数。
我们可以先创建一个新的多项式 P3,将 P1 和 P2 的系数相加:
P3 = (a1 + b1)*x^(max(n, m)) + (a2 + b2)*x^(max(n, m)-1) + … + (an + bn)*x + (a(n+1) + b(m+1))
可以使用数组来存储多项式的系数,假设有两个数组 coef1 和 coef2 分别存储 P1 和 P2 的系数,那么可以用一个循环将系数相加,并存储到一个新的数组 coef3:
int n = ...; // P1 的最高次数
int m = ...; // P2 的最高次数
int len = max(n, m) + 1; // P3 的系数个数
int coef1[] = {a1, a2, ..., an, a(n+1)}; // P1 的系数数组
int coef2[] = {b1, b2, ..., bm, b(m+1)}; // P2 的系数数组
int coef3[len]; // P3 的系数数组
for (int i = 0; i < len; i++) {
if (i <= n && i <= m) {
coef3[i] = coef1[i] + coef2[i];
} else if (i <= n) {
coef3[i] = coef1[i];
} else {
coef3[i] = coef2[i];
}
}
最后,多项式 P3 的系数都存储在 coef3 数组中,可以根据需要进行后续操作。