{ 1, 1, 0, 1, 1, 1 }存储的是多项式系数,{1,0,0}存储的也是多项式系数,用c++让两者相乘并返回结果
时间: 2023-09-20 11:11:41 浏览: 73
以下是一个可能的 C++ 实现:
```c++
#include <iostream>
#include <vector>
using namespace std;
vector<int> multiplyPolynomials(const vector<int>& poly1, const vector<int>& poly2) {
int m = poly1.size(), n = poly2.size();
vector<int> result(m + n - 1, 0);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
result[i + j] += poly1[i] * poly2[j];
}
}
return result;
}
int main() {
vector<int> poly1{1, 1, 0, 1, 1, 1};
vector<int> poly2{1, 0, 0};
vector<int> result = multiplyPolynomials(poly1, poly2);
for (int i = 0; i < result.size(); i++) {
cout << result[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
1 1 0 1 1 1 0 0
```
解释:两个多项式相乘得到的结果是一个次数为 $m+n-2$ 的多项式,第 $i$ 项系数为 $\sum_{j=0}^{i} a_j b_{i-j}$,其中 $a_j$ 和 $b_{i-j}$ 分别表示两个多项式在 $x^j$ 和 $x^{i-j}$ 上的系数。因此,我们可以使用两个 for 循环来计算每一项的系数,并将它们累加到结果中。最后返回结果即可。
阅读全文