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...