在 C++ 中将两个多项式相乘

在本教程中,我们将编写一个将两个多项式相乘的程序。多项式的每一项的系数在一个数组中给出。

让我们看看解决问题的步骤。

  • 初始化两个多项式。

  • 创建一个长度为两个多项式的新数组。

  • 迭代两个多项式。

    • 从第一个多项式中取出一项并将其与第二个多项式中的所有项相乘。

    • 将结果存储在结果多项式中。

示例

让我们看看代码。

#include <bits/stdc++.h>

using namespace std;

int *multiplyTwoPolynomials(int A[], int B[], int m, int n) {

   int *productPolynomial = new int[m + n - 1];

   for (int i = 0; i < m + n - 1; i++) {

      productPolynomial[i] = 0;

   }

   for (int i = 0; i < m; i++) {

      for (int j = 0; j < n; j++) {

         productPolynomial[i + j] += A[i] * B[j];

      }

   }

   return productPolynomial;

}

void printPolynomial(int polynomial[], int n) {

   for (int i = n - 1; i >= 0; i--) {

      cout << polynomial[i];

      if (i != 0) {

         cout << "x^" << i;

         cout << " + ";

      }

   }

   cout << endl;

}

int main() {

   int A[] = {1, 2, 3, 4};

   int B[] = {4, 3, 2, 1};

   int m = 4;

   int n = 4;

   cout << "第一个多项式: ";

   printPolynomial(A, m);

   cout << "第二多项式: ";

   printPolynomial(B, n);

   int *productPolynomial = multiplyTwoPolynomials(A, B, m, n);

   cout << "乘积多项式: ";

   printPolynomial(productPolynomial, m + n - 1);

   return 0;

}

输出结果

如果你运行上面的代码,那么你会得到下面的结果。

第一个多项式: 4x^3 + 3x^2 + 2x^1 + 1

第二多项式: 1x^3 + 2x^2 + 3x^1 + 4

乘积多项式: 4x^6 + 11x^5 + 20x^4 + 30x^3 + 20x^2 + 11x^1 + 4

结论

如果您对本教程有任何疑问,请在评论部分提及。

以上是 在 C++ 中将两个多项式相乘 的全部内容, 来源链接: utcz.com/z/356229.html

回到顶部