二元多項式

2021-09-24 15:13:03 字數 1676 閱讀 8479

problem description

給你多個二元多項式和乙個操作符,讓你輸出操作符操作這些二元多項式之後的結果。

input

首先輸入二元多項式的個數n和操作符號(『+』,『*』);

後面n行輸入每乙個多項式。

多組輸入,當n=0的時候結束輸入。

(n<5,二元多項式的長度小於1000,二元多項式都是由x,y,^,數字,』+』組成的)

output

輸出操作之後的結果。

(輸出的順序按照:x^2>x>xy^2>xy>y^2>y>常數)

sample input

2 +

3x+4y^2+3xy+6x^10y^2+1

2x+6y

0

sample output

6x^10y^2+5x+3xy+4y^2+6y+1
#include struct node

head[9];

char st[1024];

struct node *creat()

;void build(struct node *root)

if(st[i]=='x')

else

data=0,temp=1;

}if(st[i]=='y')

else

data=0,temp=1;

}if(st[i]=='+')

else if(p->x||p->y)

data=0,temp=1;

p->next=root->next;

root->next=p;

p=creat();}}

if(data)

else if(p->x||p->y)

p->next=root->next;

root->next=p;

}void link(struct node*root,struct node*root)

p=p->next;

}root->next=head->next;

free(head);

}void bing(struct node *root)

else if(!q->num)

else

}p=p->next;

}}void qsort(struct node *root)

else if(p->x==q->x&&p->x)

else if(p->yy&&p->y)

}else if(p->x==q->x&&!p->x)

}q=q->next;

}p=p->next;

}}void put(struct node*root)

if(p->num)

}else

if(p->x)

}if(p->y)

}p=p->next;

}printf("\n");

}int main()

for(i=1; i<=n; i++)

if(ch[0]=='+')}}

if(ch[0]=='*')

}bing(&head[0]);

qsort(&head[0]);

put(&head[0]);

}return 0;

}

二元多項式

time limit 1000ms memory limit 65536k 有疑問?點這裡 給你多個二元多項式和乙個操作符,讓你輸出操作符操作這些二元多項式之後的結果。首先輸入二元多項式的個數n和操作符號 後面n行輸入每乙個多項式。多組輸入,當n 0的時候結束輸入。n 5,二元多項式的長度小於100...

二元多項式

給你多個二元多項式和乙個操作符,讓你輸出操作符操作這些二元多項式之後的結果。首先輸入二元多項式的個數n和操作符號 後面n行輸入每乙個多項式。多組輸入,當n 0的時候結束輸入。n 5,二元多項式的長度小於1000,二元多項式都是由x,y,數字,組成的 輸出操作之後的結果。輸出的順序按照 x 2 x x...

二元多項式

time limit 1000ms memory limit 65536kb submit statistic discuss problem description 給你多個二元多項式和乙個操作符,讓你輸出操作符操作這些二元多項式之後的結果。input 首先輸入二元多項式的個數n和操作符號 後面n...