PAT甲级 1002 A+B for Polynomials (25 分) (模拟)

题目链接:传送门

思路:之间每一项对应相加即可,注意如果系数是零就不用输出这一项了。

代码:

#include <bits/stdc++.h>

using namespace std;


const int maxn = 1005;


double a[maxn];
bool vis[maxn];


int main() {
	int k;
	ios::sync_with_stdio(0);
	int cnt = 0;
	for(int i = 0 ; i < 2 ; i++) {
		cin >> k;
		for(int i = 0 ; i < k ; i++) {
			int t;
			cin >> t;
			double x;
			cin >> x;
			a[t] += x;
		}
	}
    for(int i = maxn - 1 ; i >= 0; i--)if(a[i]) {
        cnt++;
        vis[i] = 1;
    }
	cout << cnt;
	for(int i = maxn - 1 ; i >= 0 ; i--) {
		if(vis[i]) {
			cout <<" " << i << " " << fixed << setprecision(1) << a[i]; //fixed << setprecision << 用于限制精度
		}
	}
	cout << "\n";
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_39475280/article/details/103192373