PAT甲级——A1009 Product of Polynomials

PAT甲级——A1009 Product of Polynomials,第1张

概述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 informati

This time,you are supposed to find @H_403_11@A×B where @H_403_11@A and @H_403_11@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:

@H_403_11@@H_403_11@N?1?? @H_403_11@a?N?1???? @H_403_11@N?2?? @H_403_11@a?N?2???? ... @H_403_11@N?K?? @H_403_11@a?N?K????

where @H_403_11@K is the number of nonzero terms in the polynomial, @H_403_11@N?i?? and @H_403_11@a?N?i???? (,) are the exponents and coefficIEnts,respectively. It is given that 1, 0.

Output Specification:

For each test case you should output the product of @H_403_11@A and @H_403_11@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.22 2 1.5 1 0.5
Sample Output:


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

3 3 3.6 2 6.0 1 1.6
 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         else35             printf(" %d %.1f",ptr->first,ptr->second);36     }37     cout << endl;38 39     return 0;40 }
总结

以上是内存溢出为你收集整理的PAT甲级——A1009 Product of Polynomials全部内容,希望文章能够帮你解决PAT甲级——A1009 Product of Polynomials所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1017082.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存