A+B for Polynomials

This time, you are supposed to find A+B where A and B are two polynomials.

Input Specification:

Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:

N1​​ aN1​​​​ N2​​ aN2​​​​ ... NK​​ aNK​​​​

where K is the number of nonzero terms in the polynomial, Ni​​ and aNi​​​​ (,) are the exponents and coefficients, respectively. It is given that 1,0.

Output Specification:

For each test case you should output the sum of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate to 1 decimal place.

Sample Input:

2 1 2.4 0 3.2
2 2 1.5 1 0.5

Sample Output:

3 2 1.5 1 2.9 0 3.2

#include<iostream> 
using namespace std;
int main(){
    int m,n,i,temp,count=0;
    float a[1002],b[1002];
    cin>>m;
    for(i=0;i<m;i++){
        cin>>temp;
        cin>>a[temp];
    }
    cin>>n;
    for(i=0;i<n;i++){
        cin>>temp;
        cin>>b[temp];
        if(a[temp]==0){
            a[temp]=b[temp];
        }
        else{
            a[temp]+=b[temp];
        }
    }
    for(i=0;i<1001;i++){
        if(a[i]!=0)
            count++;
    }
    cout<<count;
    for(i=1000;i>=0;i--){
        if(a[i]!=0){
           printf(" %d %.1f",i,a[i]);
        }
    }
    return 0;
}

  

原文地址:https://www.cnblogs.com/muchenyu/p/11914863.html