PAT (Advanced Level) 1002. A+B for Polynomials (25)

为0的不要输出。

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdio>
using namespace std;

double a[1500],b[1500];
int k;

int main()
{
    for(int i=0;i<=1000;i++) a[i]=b[i]=0;
    int Max=-1;
    scanf("%d",&k);
    for(int i=1;i<=k;i++)
    {
        int id;double num;
        scanf("%d%lf",&id,&num);
        Max=max(Max,id);
        a[id]=num;
    }

    scanf("%d",&k);
    for(int i=1;i<=k;i++)
    {
        int id;double num;
        scanf("%d%lf",&id,&num);
        Max=max(Max,id);
        b[id]=num;
    }

    int cnt=0;
    for(int i=Max;i>=0;i--)
        if(a[i]+b[i]!=0) cnt++;

    printf("%d",cnt);
    int op=0;
    for(int i=Max;i>=0;i--)
    {
        if(a[i]+b[i]!=0){
            printf(" %d %.1lf",i,a[i]+b[i]);
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/zufezzt/p/5495933.html