之前占了个坑,只贴了代码
-
题目大意:给出两个多项式,(形式为:第一个数字为项数,之后的每两个数字的第一个数字是次数,第二个数字的系数)输出两个多项式之和。
-
易错点:由于系数为正或者负,因此可能出现加和后系数为0,注意相加后的多项式项数即可。另外题目要求保留一位小数就乖乖保留一位小数,不要以为sample都是一位小数其他的测试就也是一位小数。
-
不认识的单词(本英语渣渣的专属板块):
polynomials 多项式
term 原意是:条款,价钱,说辞,题中应理解为项数
coefficient 系数
exponent (exp)指数
*decimal 10进制 Please be accurate to 1 decimal place.保留一位小数 -
代码
#include <iostream>
#include <algorithm>
using namespace std;
double num[1010];
int main(){
//freopen("D:\\PAT\in.txt","r",stdin);
int N,M;
cin>>N;
int index;
double temp;
for(int i=0;i<N;i++){
cin>>index>>temp;
num[index]+=temp;
}
cin>>M;
//cout<<M;
for(int i=0;i<M;i++){
cin>>index>>temp;
if(num[index]==0) N++;
num[index]+=temp;
if(num[index]==0) N--;
}
cout<<N;
for(int i=1000;i>=0;i--){
if(num[i]!=0) printf(" %d %.1lf",i,num[i]);
}
return 0;
}