输入 输入两行整数,分别代表两个多项式。 对于每行整数,第一个数表示第一项的系数,第二个整数表示第一项的指数,第三项表示第二项的系数...,以此类推。 多项式的指数保证是递增序列。 输出 依次输出两个多项式相乘得到的多项式的系数和指数,其中多项式的指数保持递增。C++
时间: 2024-12-22 14:29:39 浏览: 0
1_大师_
在C++中,你可以通过动态数组和while循环来实现这个功能。这里是一个简单的示例代码,它演示了如何计算两个多项式的乘积:
```cpp
#include <iostream>
#include <vector>
std::vector<int> multiplyPolynomials(std::vector<int>& poly1, std::vector<int>& poly2) {
int n = poly1.size() - 1;
int m = poly2.size() - 1;
std::vector<int> result(n + m + 1, 0); // 初始化结果多项式
for (int i = 0; i <= n; ++i) { // 遍历第一个多项式
for (int j = 0; j <= m; ++j) { // 遍历第二个多项式
if (i + j > 0) {
result[i + j] += poly1[i] * poly2[j]; // 逐位相乘并累加到结果中
}
}
}
return result; // 返回合并后的系数及对应指数
}
void printPolynomial(const std::vector<int>& polynomial) {
for (int i = 0; i < polynomial.size(); ++i) {
if (polynomial[i] != 0) {
std::cout << polynomial[i] << "x^" << i << " ";
}
}
std::cout << std::endl;
}
int main() {
std::vector<int> poly1 = {2, 1, 3}; // 示例多项式1: 2x^1 + 3x^2
std::vector<int> poly2 = {4, 0, 5}; // 示例多项式2: 4x^0 + 5x^2
std::vector<int> product = multiplyPolynomials(poly1, poly2);
printPolynomial(product);
return 0;
}
```
当你运行这段代码,它会输出两个多项式相乘的结果。例如,对于上述示例,输出将是 `6x^1 + 13x^2 + 15x^3`。
阅读全文