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

题目描述:https://pintia.cn/problem-sets/994805342720868352/problems/994805526272000000

题目大意:给出两个多项式,输出多项式和。

思路:创建一个 1001 大小的数组,用来存放两个多项式的元素。在存入第二个多项式的元素时,若某一位置上已有元素,计算二者的和。最后输出数组中不为零的索引和元素值。

代码:

#include<iostream>
#include<sstream>
#include<string>
using namespace std;
int main(){
    float a[1001] = {0};
    int k,i,cnt = 0;
    float val;
    cin>>k;
    for(int j=0;j<k;j++){
        scanf("%d %f",&i,&val);
        a[i] += val;
    }
    cin>>k;
    for(int j=0;j<k;j++){
        scanf("%d %f",&i,&val);
        a[i] +=val;
    }
    for(int j=1000;j>=0;j--){
        if(a[j]!=0){
            cnt++;
        }
    }
    printf("%d", cnt);
    for(int j=1000;j>=0;j--){
        if(a[j]!=0){
            printf(" %d %.1f", j, a[j]);
        }
    }
} 

 

posted @ 2020-09-02 15:38  狂奔的小学生  阅读(119)  评论(0编辑  收藏  举报