二元多項式

2021-07-11 23:27:54 字數 1669 閱讀 7521

time limit: 1000ms   memory limit: 65536k  有疑問?點這裡^_^

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

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

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

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

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

輸出操作之後的結果。

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

2 +

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

2x+6y

0

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

#include #include #include #include #include #include using namespace std;

struct point

head[10];

char str[1100];

point * creat()

void build(point * root)

else if(str[i]=='x')

else if(str[i]=='y')

else if(str[i]=='+')

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

p->next=root->next;

root->next=p;

data=0;

ans=1;

p=creat();}}

if(data)

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

p->next=root->next;

root->next=p;

}void link(point *root,point *root)

p=p->next;

}root->next=temp->next;

free(temp);

}void sort(point *root)

else if(p->num==0&&q->num==0)

else

}p=p->next;

}p=root->next;

while(p)//排序

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

else if (p->yy&&p->y!=0)

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

}q=q->next;

}p=p->next;

}}void output(point *root)

if(p->num)

else

if(p->x)

if(p->y)

p=p->next;

}printf("\n");

}int main()

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

if(c[0]=='+')//如果是加法進行連線,然後合併同類項,排序}}

else if(c[0]=='*')//如果是乘法,進行乘法,然後合併排序

}sort(&head[0]);

output(&head[0]);

}return 0;

}

二元多項式

給你多個二元多項式和乙個操作符,讓你輸出操作符操作這些二元多項式之後的結果。首先輸入二元多項式的個數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...

二元多項式

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