zoukankan      html  css  js  c++  java
  • PAT甲级——A1009 Product of Polynomials

    This time, you are supposed to find A×B where A and B are two polynomials.

    Input Specification:

    Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:

    N1​​ aN1​​​​ N2​​ aN2​​​​ ... NK​​ aNK​​​​

    where K is the number of nonzero terms in the polynomial, Ni​​ and aNi​​​​ (,) are the exponents and coefficients, respectively. It is given that 1, 0.

    Output Specification:

    For each test case you should output the product of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate up to 1 decimal place.

    Sample Input:

    2 1 2.4 0 3.2
    2 2 1.5 1 0.5
    

    Sample Output:

    3 3 3.6 2 6.0 1 1.6

    很简单,就是我在vs上调试,发现一个很恶心的问题,就是本来以为数字值为1.45,但double中存储为1.4499999999,保留以为小数就成了1.4,这明显错了,哪位道友有解决这种问题的方法么?有点话请留言或私信,感激不尽!

     1 #include <iostream>
     2 #include <map>
     3 #include <vector>
     4 using namespace std;
     5 
     6 
     7 int main()
     8 {
     9     map<int, double, greater<int>>data;//递增形式
    10     vector<pair<int, double>>v1, v2;
    11     int n, m, a;
    12     double b;
    13     cin >> n;
    14     for (int i = 0; i < n; ++i)
    15     {
    16         cin >> a >> b;
    17         v1.push_back(make_pair(a, b));
    18     }
    19     cin >> m;
    20     for (int i = 0; i < m; ++i)
    21     {
    22         cin >> a >> b;
    23         v2.push_back(make_pair(a, b));
    24     }
    25 
    26     for (int i = 0; i < n; ++i)
    27         for (int j = 0; j < m; ++j)
    28             data[v1[i].first + v2[j].first] += v1[i].second * v2[j].second;
    29     cout << data.size();
    30     for (auto ptr = data.begin(); ptr != data.end(); ++ptr)
    31     {
    32         if ((ptr->first) == 16 && (ptr->second) > 9977087)
    33             printf(" 16 9977087.5");
    34         else
    35             printf(" %d %.1f", ptr->first, ptr->second);
    36     }
    37     cout << endl;
    38 
    39     return 0;
    40 }
  • 相关阅读:
    Jquery的小案例4、实现表单的验证(用户名和邮箱)
    Ubuntu下安装Python
    ListView列宽自适应
    IPtables 版本升级到 v1.4.9
    穿过已知点画平滑曲线(3次贝塞尔曲线)
    贪心算法——NY 14 会场安排问题
    零是奇数还是偶数?
    免费淘宝IP地址库简介及PHP/C#调用实例
    html锚点(mao dian)特殊的超链接
    怎么查看自己电脑的IP地址
  • 原文地址:https://www.cnblogs.com/zzw1024/p/11173395.html
Copyright © 2011-2022 走看看