📄 c.cpp
字号:
#include<stdio.h>
struct polynome{
int a;
int b;
polynome *next;
};
polynome *InitPoly(int n)
{ polynome *head,*p;
p=new polynome;
head=p;
for(int i=n-1;i>=-1;i--)
{ p->next=new polynome;
p->next->a=i;
p->next->b=i;
p=p->next;
}
return head;
}
int PolyLength(polynome *p)
{ int i=0;
while(p->next->b!=-1)
{ i++;
p=p->next;
}
return i;
}
int del(polynome *p)
{ polynome *temp;
while(p->b!=-1)
{ temp=p->next;
delete p;
p=temp;
}
delete p;
return 1;
}
char Compare(int a,int b)
{ if(a>b) return('>');
if(a==b) return('=');
if(a<b) return('<');
}
int Plus(polynome *p1,polynome *p2)
{ polynome *temp;
if(p1->next->b==-1)
return 0;
else
while(p1->next->b!=-1||p2->next->b!=-1)
{
switch(Compare(p1->next->b,p2->next->b))
{ case '>' :
temp=p2->next;
p2->next=new polynome;
p2->next->next=temp;
p2->next->a=p1->next->a;
p2->next->b=p1->next->b;
p2=p2->next;
p1=p1->next;
break;
case '<' :
p2=p2->next;
break;
case '=' :
p2->next->a=p1->next->a+p2->next->a;
p1=p1->next;
p2=p2->next;
break;
}
}
return 0;
}
int OneMultiply(polynome *s,polynome *in,polynome *p)
{
while(in->next->b!=-1)
{ p->next->a=(s->a)*(in->next->a);
p->next->b=s->b+in->next->b;
in=in->next;
p=p->next;
}
return 1;
}
polynome *Multiply(polynome *p1,polynome *p2)
{ polynome *head,*sum;
sum=InitPoly(0);
head=sum;
if(p1->next->b==-1||p2->next->b==-1)
return head;
else
{ polynome *temp;
temp=InitPoly(PolyLength(p2));
while(p1->next->b!=-1)
{ OneMultiply(p1->next,p2,temp);
Plus(temp,sum);
p1=p1->next;
}
del(temp);
}
return head;
}
int main()
{ int j=0;
polynome *p1,*head1,*sum,*hsum;
polynome *p2,*head2;
p1=new polynome;
head1=p1;
p2=new polynome;
head2=p2;
do
{ p1->next=new polynome;
p1=p1->next;
scanf("%d%d",&(p1->a),&(p1->b));
}while(p1->b!=-1);
do
{ p2->next=new polynome;
p2=p2->next;
scanf("%d%d",&(p2->a),&(p2->b));
}while(p2->b!=-1);
p1=head1;
p2=head2;
sum=Multiply(head1,head2);
hsum=sum;
while(sum->next->b!=-1)
{ if(sum->next->a!=0)
{ printf("%d %d ",sum->next->a,sum->next->b);
j++;
}
sum=sum->next;
}
if(j==0)
printf("0");
del(head1);
del(head2);
del(hsum);
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -