温馨提示×

c语言怎么求两个多项式的和

小亿
146
2023-08-17 22:39:17
栏目: 编程语言

要求两个多项式的和,可以将两个多项式的系数相加。

假设有两个多项式 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 数组中,可以根据需要进行后续操作。

0