pat甲级1002

来源:互联网 发布:seo外链资源 编辑:程序博客网 时间:2024/06/06 01:52

这个题有很多坑,我说一下我遇到的:(1)输出结果最后不能有空格(2)如果两个多项式相加是0,应该只输出一个K,就是0,后面不能跟空格(3)两个多项式中某一项相加系数是0了,就不能输出这一项,前面K计数时,也不能把这一项算进去。

由于项数最多是1000,我就采用了暴力搜索的方法,建立了两个1005的数组储存两个多项式的系数,每一项分别加和后输出不是0的项,以下是C++代码:

#include <bits/stdc++.h>using namespace std;double a[1005];double b[1005];int main(){    int n;    cin>>n;    for(int i=0;i<n;++i)    {        int e;        double c;        cin>>e>>c;        a[e]=c;    }    cin>>n;    for(int i=0;i<n;++i)    {        int e;        double c;        cin>>e>>c;        b[e]=c;    }    int s=0;    for(int i=0;i<1005;++i)    {        a[i]+=b[i];        if(a[i]!=0)            ++s;    }    cout<<s;    for(int i=1004;i>=0;--i)    {        if(a[i]!=0)        {            printf(" %d %.1f",i,a[i]);        }    }}