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;
}
View Code

 

posted @ 2017-04-18 14:53  辰曦~文若  阅读(586)  评论(0编辑  收藏  举报