1. 程式人生 > 實用技巧 >PAT (Advanced Level) Practice 1002 A+B for Polynomials (25分)

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