编写程序实现多项式求和Word格式文档下载.docx
《编写程序实现多项式求和Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《编写程序实现多项式求和Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
if(n==0||node[1].coef==0)
0"
for(i=1;
i<
=n;
i++)
{
if(i!
=1&
&
node[i].coef>
0)
+"
node[i].coef<
x^"
node[i].exp;
}
endl;
intsort(Polynode[],intn)//排序函数,合并同指数项去除0系数项
inti,j,k,t;
Polynodet[1];
=n-1;
i++)//排序
for(j=i+1;
j<
j++)
if((node[i].exp)>
(node[j].exp))
nodet[0]=node[i];
node[i]=node[j];
node[j]=nodet[0];
i++)//合并同类项
if(node[i].exp==node[j].exp)
{
node[i].coef=node[i].coef+node[j].coef;
for(k=j;
k<
k++)
node[k]=node[k+1];
n--;
j--;
if(node[i].coef==0)
for(t=i;
t<
t++)
node[t]=node[t+1];
returnk=n;
voidcreat(Polynode[],intn)//创建函数
请依次输入每一项的系数指数:
cin>
>
void
addpoly(Polynode1[],Polynode2[],intn1,intn2)//相加函数
for(i=n1+1;
=n1+n2;
node1[i]=node2[i-n1];
voidmain()//主函数
intn,p,a,b;
Polynode1[N],node2[N];
请输入第一个多项式:
请输入多项式的项数(小于30):
n;
creat(node1,n);
a=p=sort(node1,n);
print(node1,p);
请输入第二个多项式:
creat(node2,n);
b=p=sort(node2,n);
print(node2,p);
相加后:
addpoly(node1,node2,a,b);
p=sort(node1,a+b);
运行界面:
方法二:
iostream>
usingnamespacestd;
#defineN30
intmain()
inta[N]={0},b[N]={0},c[N]={0},n,i;
请输入第一个多项式的最大指数:
请输入第一个多项式的系数:
for(i=0;
i++)
a[i];
请输入第二个多项式的最大指数:
请输入第二个多项式的系数:
b[i];
多项式之和为:
=N;
c[i]=a[i]+b[i];
N;
if(c[i]!
=0)
if(i==0)
c[0]<
0;
else
if(c[i]>
c[i]<
i;
方法三:
#defineMax20
typedefstruct
}poly[Max];
structPolyNode
PolyNode*next;
};
classPoly
private:
PolyNode*head;
public:
Poly();
~Poly();
voidcreate(polya,intn);
voidoutput();
voidsort();
//多项式结点非降序排序
voidadd(PolyL);
Poly:
:
Poly()
head=newPolyNode;
head->
next=NULL;
~Poly()
PolyNode*p;
while(head)
p=head;
head=head->
next;
deletep;
head=NULL;
voidPoly:
create(polya,intn)
PolyNode*s,*r;
r=head;
s=newPolyNode;
s->
coef=a[i].coef;
exp=a[i].exp;
r->
next=s;
r=s;
sort()
PolyNode*p,*q,*r;
p=head->
if(p)
r=p->
p->
p=r;
while(p)
q=head;
while(q->
next&
q->
next->
exp<
exp)
q=q->
next=q->
next=p;
output()
coef<
"
p=p->
add(PolyL)
floatsum;
PolyNode*pa,*pb,*qa,*qb;
pa=head;
qa=pa->
pb=L.head;
qb=pb->
while(qa&
qb)
if(qa->
qb->
pa=qa;
qa=qa->
elseif(qa->
exp>
pb->
next=qb->
next=qa;
pa->
next=qb;
pa=qb;
sum=qa->
coef+qb->
coef;
if(sum==0)
next=qa->
deleteqa;
deleteqb;
qa->
coef=sum;
if(qb)
voidmain()
PolyA,B;
polya={{1,2},{2,0},{3,1},{4,5},{6,8}};
polyb={{12,2},{-3,5},{22,7},{-5,1}};
A.create(a,5);
B.create(b,4);
原多项式A为:
A.output();
原多项式B为:
B.output();
A.sort();
B.sort();
有序多项式A为:
有序多项式B为:
A.add(B);
和多项式为:
继续阅读