题目网址
https://pintia.cn/problem-sets/994805342720868352/problems/994805526272000000
思路
数组下标表示指数,数组值表示系数.注意系数可以为负.
代码
#include <iostream>
#include <iomanip>
#include <vector>
#define MAX 1001
using namespace std;
vector<double> v(MAX);
int main() {
int n;
int m;
int cnt = 0;
int ex;
double coe;
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> ex >> coe;
v[ex] += coe;
}
cin >> m;
for (int j = 0; j < m; ++j) {
cin >> ex >> coe;
v[ex] += coe;
}
for (auto i : v)
if (i != 0)
cnt ++;
cout << cnt;
if (cnt == 0)
return 0;
for (int k = MAX - 1; k >= 0; --k) {
if (v[k] != 0)
cout << " " << k << " " << setiosflags(ios::fixed) << setprecision(1) << v[k];
}
return 0;
}
本文介绍了一种解决PAT甲级1002A+B for Polynomials问题的算法,使用数组下标表示多项式的指数,数组值表示系数,包括正数和负数。通过C++代码实现,详细展示了如何输入两个多项式并计算它们的和,最后输出结果的项数及具体每一项。
248

被折叠的 条评论
为什么被折叠?



