PAT (Advanced Level) Practice 1002 A+B for Polynomials (25分)
阿新 • • 發佈:2020-09-02
題目描述: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]);
}
}
}