题目链接
题目大意即多项式相加;
拿案例来说明数字的意思
2 1 2.4 0 3.2
2 2 1.5 1 0.5
第一个数即非0系数的个数;
每两个数为一组,分别为几次项和系数;
知道这个后,就可以来做了;
利用类似hash的思想,数组下标的位置存他的系数;
注意两点:输出每个系数保留一位小数,及注意格式控制;
#include <iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<string>
#include<stack>
#include<math.h>
#include<vector>
using namespace std;
double a[1005], b[1005];
int main() {
int count1;
cin >> count1;
for (int i = 1;i <= count1;i++)
{
int k;
cin >> k;
cin >> a[k];
}
int count2;
cin >> count2;
for (int i = 1;i <= count2;i++)
{
int k;
cin >> k;
cin >> b[k];
}
double c[1005] = { 0 };
int count3=0;
for (int i = 0;i <= 1000;i++)
{
c[i] = a[i] + b[i];
if (c[i]) count3++;
}
cout << count3;
for (int i = 1000;i >=0;i--)
{
if (c[i]) {
printf(" %d %.1lf", i, c[i]);
}
}
return 0;
}