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

发布于:2021-09-23 08:03:43

原题:https://pintia.cn/problem-sets/994805342720868352/problems/994805526272000000



?


题目大意:


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


如:2 1 2.4 0 3.2 表示多项式??


2 2 1.5 1 0.5 表示多项式?


相加就是


所以输出是 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;
}

?

相关推荐