用链表表示多项式,并实现多项式的加法运算
输入格式:
输入在第一行给出第一个多项式POLYA的系数和指数,并以0,0 结束第一个多项式的输入;在第二行出第一个多项式POLYB的系数和指数,并以0,0 结束第一个多项式的输入。
输出格式:
对每一组输入,在一行中输出POLYA+POLYB和多项式的系数和指数。
输入样例:
5,0 2,1 1,6 8,15 0,0
-2,1 3,6 4,8 0,0
输出样例:
5,0 4,6 4,8 8,15
代码示例如下:
#include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<unordered_map>
#include<set>
using namespace std;
const int N=1e6+10;
int main()
{
unordered_map<int,int>mpx;
set<int>s;
int n,m;
int flag=0;
while(flag<2)
{
scanf("%d,%d",&n,&m);
if(n==0 && m==0) flag++;
else
{
mpx[m]+=n;
s.insert(m);
}
}
for(set<int>::iterator it=s.begin();it!=s.end();it++)
{
if(mpx[*it]!=0) printf("%d,%d ",mpx[*it],*it);
}
printf("\n");
return 0;
}