原题链接:
本题需要将相同次数的项进行相加,因此在初始输入的时候就直接用数组记录每个次数项,下标为次数,值为对应次数项的值(用+=)
遍历整个数组,看有几个元素非0即可知非0项的个数。
因要求降幂输出,则从后向前遍历,输出每个元素的下标和值。
#include <bits/stdc++.h>
using namespace std;
double a[1010];
int cnt;
int main()
{
int k1, k2, n;
double num;
scanf("%d", &k1);
for (int i = 0; i < k1; i++) {
scanf("%d%lf", &n, &num);
a[n] += num;
}
scanf("%d", &k2);
for (int i = 0; i < k2; i++) {
scanf("%d%lf", &n, &num);
a[n] += num;
}
for (int j = 0; j < 1002; j++) {
if (a[j]) cnt++;
}
printf("%d", cnt);
for (int j = 1001; j >= 0; j--) {
if (a[j]) printf(" %d %.1f", j, a[j]);
}
return 0;
}
标签:cnt,PAT,k2,int,scanf,Polynomials,++,num,1002
From: https://www.cnblogs.com/pangyou/p/17817372.html