题目大意
计算多项式A+B的和
思路
- 跟B1010 一元多项式求导有类似的地方
- 按格式分别读入第一行和第二行
- 直接代入数组
- 最后从大到小输出
tips:
幂数最大可以取到1000,那么数组的大小最少为1001
需要保留一位小数
最后输出不能有空格
AC代码
#include<iostream>
using namespace std;
int main()
{
float c[1001]={};
int m,n,t;
float num;
scanf("%d",&m);//第一行的数据
for(int i=0;i<m;i++){
scanf("%d%f",&t,&num);
c[t]+=num;
}
scanf("%d",&n);//第二行的数据
for(int i=0;i<n;i++){
scanf("%d%f",&t,&num);
c[t]+=num;
}
int cnt=0;//cnt是输出的第一个数
for(int i=0;i<1001;i++){
if(c[i]!=0) cnt++;
}
printf("%d",cnt);
for(int i=1000;i>=0;i--){
if(c[i]!=0.0)
printf("%d %.1f",i,c[i]);//注意空格
}
return 0;
}