要求兩個多項式的和,可以將兩個多項式的系數相加。
假設有兩個多項式 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 數組中,可以根據需要進行后續操作。