ACM 基础数学 PAT 1002 A+B for Polynomials

1.5x^2 + 2.9x^1 + 3.2x^0原题:https://pintia.cn/problem-sets/994805342720868352/problems/994805526272000000

ACM 基础数学 PAT 1002 A+B for Polynomials_第1张图片

 

题目大意:

两行输入,第一个数字代表有多少项,每项的第一个数字代表幂次,第二个数字代表系数。

如:2 1 2.4 0 3.2 表示多项式 2.4x^1 + 3.2x^0 

2 2 1.5 1 0.5 表示多项式 1.5x^2 + 0.5x

相加就是1.5x^2 + 2.9x^1 + 3.2x^0

所以输出是 3 (三项) 2 1.5 (1.5X^2) 1 2.9 (2.9X^1) 0 3.2 (3.2X^0)

 

AC代码:

#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
int n;
double a[1500];
int x;
double y;
int maxx = -0x3f3f;
int main() {
    for(int i = 0; i < 2; i++) {
        cin >> n;
        for(int j = 0; j < n; j++) {
            cin >> x >> y;
            a[x] += y;
            maxx = max(maxx, x);
        }
    }
    int cnt = 0;
    for(int k = 0; k <= maxx; k++) {
        if(a[k]) {
            cnt++;
        }

    }
    cout << cnt;
    for(int p = maxx; p >= 0; p--) {
        if(a[p]) {
            printf(" %d %.1lf",p,a[p]);
        }
    }
    return 0;
}

 

你可能感兴趣的:(ACM,数学,模拟,PAT,甲级)