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@K @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.5Sample 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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)