算法过程:思路较为简单,用一个float数组实现相加,格式化输出的时候用c语言格式化输出就好了。同时这个题也可用map容器来写更优。
源代码:
#include <iostream>
#include <cstdio>
using namespace std;
int main() {
double n[1001] = {0}; // 多项式的各项系数
int k, z; // k 多项式项数,z 指数
double x; // x 系数
for(int i = 0; i < 2; i++) {
cin >> k;
while(k--) {
cin >> z >> x;
n[z] += x;
}
}
// 统计 A + B 和的非零项个数
int TK = 0;
for(int i = 1000; i >= 0; i--) {
if(n[i] != 0) {
TK ++;
}
}
cout << TK;
for(int i = 1000; i >= 0; i--) {
if(n[i] != 0) {
printf(" %d %.1f",i,n[i]);
}
}
return 0;
}