多项式表示与加法:数组实现
多项式表示与加法:数组实现
当然,还有其他形式的代码来表示多项式和实现多项式的加法运算。下面是使用数组来表示多项式的示例代码:c#include <stdio.h>
// 多项式相加void addPolynomials(int poly1[], int size1, int poly2[], int size2, int result[]) { int i = 0, j = 0, k = 0;
while (i < size1 && j < size2) { if (poly1[i + 1] == poly2[j + 1]) { int sum = poly1[i] + poly2[j]; if (sum != 0) { result[k++] = sum; result[k++] = poly1[i + 1]; } i += 2; j += 2; } else if (poly1[i + 1] > poly2[j + 1]) { result[k++] = poly1[i++]; result[k++] = poly1[i++]; } else { result[k++] = poly2[j++]; result[k++] = poly2[j++]; } }
while (i < size1) { result[k++] = poly1[i++]; result[k++] = poly1[i++]; }
while (j < size2) { result[k++] = poly2[j++]; result[k++] = poly2[j++]; }
result[k] = -1; // 标记数组结束}
// 打印多项式void printPolynomial(int poly[], int size) { for (int i = 0; i < size; i += 2) { printf('%dx^%d ', poly[i], poly[i + 1]); if (i < size - 2 && poly[i + 2] >= 0) { printf('+ '); } } printf(' ');}
int main() { // 多项式1:3x^4 + 2x^3 + 1x^2 int poly1[] = {3, 4, 2, 3, 1, 2, -1}; int size1 = sizeof(poly1) / sizeof(poly1[0]);
// 多项式2:2x^3 + 4x^2 + 1x^1 int poly2[] = {2, 3, 4, 2, 1, 1, -1}; int size2 = sizeof(poly2) / sizeof(poly2[0]);
int maxSize = size1 + size2; int result[maxSize];
printf('多项式1:'); printPolynomial(poly1, size1);
printf('多项式2:'); printPolynomial(poly2, size2);
addPolynomials(poly1, size1, poly2, size2, result);
printf('相加结果:'); printPolynomial(result, maxSize);
return 0;}
在这个代码示例中,使用了两个数组来表示多项式,其中每个元素表示一个项的系数和指数。addPolynomials函数用于实现多项式相加,printPolynomial函数用于打印多项式。在main函数中,创建了两个多项式数组,并进行相加操作,最后打印出相加结果。这种表示方法可以更方便地进行多项式的计算,但需要额外注意数组的长度和标记数组结束的方式。
原文地址: https://www.cveoy.top/t/topic/oGd 著作权归作者所有。请勿转载和采集!