PAT甲题题解-1002. A+B for Polynomials (25)-多项式相加
注意两点:
1.系数也有可能加起来为负!!!一开始我if里面判断为>0导致有样例没过。。。
2.如果最后所有指数的系数都为0,输出一个0即可,原本以为是输出 1 0 0.0。。。
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int maxn=1005; double exps[maxn]; //exps[i]存储结果指数为i的项对应的系数,一开始变量定义为exp,导致编译错误,估计有exp函数导致重名了。。。 int main() { int k,n; double a; scanf("%d",&k); memset(exps,0,sizeof(exps)); for(int i=0;i<k;i++){ scanf("%d %lf",&n,&a); exps[n]=a; } scanf("%d",&k); for(int i=0;i<k;i++){ scanf("%d %lf",&n,&a); exps[n]+=a; } int cnt=0; for(int i=0;i<maxn;i++){ if(exps[i]!=0){ cnt++; } } printf("%d",cnt); for(int i=maxn-1;i>=0;i--){ if(exps[i]!=0){ printf(" %d %.1lf",i,exps[i]); } } return 0; }