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]);
}
}
}