多项式相加
方法:float/double 型数组,下标存储指数,对应元素存储系数
边界情况:1,两项相加可能为零的情况;2,指数的范围为0至1000,防止数组越界;3,两项相加不为零的情况
#include <iostream>
float poly[1010]={0};
int main(){
int len1,len2,lenr;
scanf("%d",&len1);
for(int i=0;i<len1;i++){
int ext;
float cot;
scanf("%d%f",&ext,&cot);
poly[ext]=cot;
}
scanf("%d",&len2);
lenr=len1+len2;
for(int i=0;i<len2;i++){
int ext;
float cot;
scanf("%d%f",&ext,&cot);
if(poly[ext]) lenr--;
poly[ext]=poly[ext]+cot;
if(poly[ext]==0) lenr--;
}
printf("%d",lenr);
for(int i=1000;i>=0;i--){
if(poly[i]) printf(" %d %.1f",i,poly[i]);
}
return 0;
}