美文网首页
Pat1002 A+B for Polynomials(25)

Pat1002 A+B for Polynomials(25)

作者: zjh3029 | 来源:发表于2018-07-24 21:49 被阅读0次
#include <iostream>
#include <map>
#include <iomanip>
using namespace std;
int main()
{
    int input_a;
    int count_a, count_b;
    double input_b;

    map<int, double> get_res;
    map<int, double>::iterator iter;

    cin >> count_a;
    for (int i = 0; i < count_a; i++)
    {
        cin >> input_a >> input_b;
        get_res.insert(pair<int, double>(input_a, input_b));
    }
    
    cin >> count_b;
    for (int i = 0; i < count_b; i++)
    {
        cin >> input_a >> input_b;
        iter = get_res.find(input_a);
        if (iter!=get_res.end())//代表查找成功
        {
            iter->second += input_b;
        }
        else
        {
            get_res.insert(pair<int, double>(input_a, input_b));
        }
        if ((iter->second==0))//注意可能系数相加的结果存在0,此时需要删除操作
        {
            get_res.erase(iter);
        }
    }

    //需要倒序输出
    map<int, double>::reverse_iterator rev_iter = get_res.rbegin();
    cout << get_res.size();
    while (rev_iter != get_res.rend())
    {
            cout << " " << rev_iter->first << " " << setiosflags(ios::fixed) << setprecision(1) << rev_iter->second;
            rev_iter++;
    }
    return 0;
}

相关文章

网友评论

      本文标题:Pat1002 A+B for Polynomials(25)

      本文链接:https://www.haomeiwen.com/subject/zutumftx.html