
2个回答
展开全部
把一个多项式的系数存在数组a里.a[i]表示x^i的系数
把另一个多项式的系数存在数组b里.b[i]表示x^i的系数
那么 for i = 1 to n for j = 1 to m c[i+j] += a[i] * b[j] //代表ax^i * bx^j = ab * x^(i+j)
c数组就存储了答案多项式的系数。
把另一个多项式的系数存在数组b里.b[i]表示x^i的系数
那么 for i = 1 to n for j = 1 to m c[i+j] += a[i] * b[j] //代表ax^i * bx^j = ab * x^(i+j)
c数组就存储了答案多项式的系数。
更多追问追答
追问
要用链表,而且乘完以后还要排序,帮我写一下具体算法嘛,大神
追答
您用链表是神马心态……如果单纯是练习链表的话还是写最经典的约瑟夫问题吧。
这题用链表好像挺麻烦。其实数组就是存储地址相邻的链表.
如果要考察对地址的理解,那还是写成这样吧……
简化了读入,您可以把您的需求说的具体点
#include <cstdio>
#include <cstdlib>
int main()
{
int n, m;
scanf("%d%d", &n, &m);
int a[1000];
int b[1000];
for (int i = n; i >= 0; --i) scanf("%d", a+i);
for (int i = m; i >= 0; --i) scanf("%d", b+i);
int c[2000];
for (int i = 0; i <= n; ++i)
for (int j = 0; j <= m; ++j)
*(c+i+j) += *(a+i) * *(b+j);
for (int i = n+m; i > 0; --i)
if (*(c+i))
if (*(c+i) == 1)
printf("x^%d + ", i);
else
printf("%dx^%d + ", *(c+i), i);
printf("%d\n", *c);
system("pause");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询