ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

1002 A+B for Polynomials (25分)

2020-05-06 10:06:34  阅读:243  来源: 互联网

标签:25 Ka int back Polynomials ++ b1 push 1002


1.多项式为0,直接输出0

2.系数为0的项不输出

3.注意double类型的判0

  1 #include <iostream>
  2 #include <vector>
  3 #include <iomanip>
  4 #include <cmath>
  5 using namespace std;
  6 
  7 int main()
  8 {
  9     vector<int> a, b;//次数
 10     vector<double>a1, b1;//系数
 11     vector<int>sum;//次数
 12     vector<double>sum1;//系数
 13     int Ka;
 14     int fz = 1;//多项式为0标志,fz==0时不为0
 15     cin >> Ka;
 16     for (int i = 0; i < Ka; i++)
 17     {
 18         int temp;
 19         double temp2;
 20         cin >> temp;
 21         a.push_back(temp);
 22         cin >> temp2;
 23         a1.push_back(temp2);
 24     }
 25     int Kb;
 26     cin >> Kb;
 27     for (int i = 0; i < Kb; i++)
 28     {
 29         int temp;
 30         double temp2;
 31         cin >> temp;
 32         b.push_back(temp);
 33         cin >> temp2;
 34         b1.push_back(temp2);
 35         for (int j = 0; j < Ka; j++)
 36         {
 37             if (a[j] == b[i])
 38             {
 39                 b1[i] += a1[j];
 40             }
 41         }
 42     }
 43     int K = Ka > Kb ? Ka : Kb;
 44     int i, j;
 45     for (i = 0, j = 0; i < Ka || j < Kb;)
 46     {
 47         if (i < Ka && j < Kb)
 48         {
 49             if (a[i] == b[j])//a,b有同次项时先把a系数加到b系数上
 50             {
 51                 if (fabs(b1[j]) > 1e-15)
 52                 {
 53                     fz = 0;
 54                     sum.push_back(b[j]);
 55                     sum1.push_back(b1[j]);
 56                 }
 57                 i++;
 58                 j++;
 59             }
 60             else if (a[i] != b[j])
 61             {
 62                 if (a[i] > b[j])
 63                 {
 64                     if (fabs(a1[i]) > 1e-15)
 65                     {
 66                         fz = 0;
 67                         sum.push_back(a[i]);
 68                         sum1.push_back(a1[i]);
 69                     }
 70                     i++;
 71                 }
 72                 else
 73                 {
 74                     if (fabs(b1[j]) > 1e-15)
 75                     {
 76                         fz = 0;
 77                         sum.push_back(b[j]);
 78                         sum1.push_back(b1[j]);
 79                     }
 80                     j++;
 81                 }
 82             }
 83         }
 84         else if (i == Ka)
 85         {
 86             if (fabs(b1[j]) > 1e-15)
 87             {
 88                 fz = 0;
 89                 sum.push_back(b[j]);
 90                 sum1.push_back(b1[j]);
 91             }
 92             j++;
 93         }
 94         else if (j == Kb)
 95         {
 96             if (fabs(a1[i]) > 1e-15)
 97             {
 98                 fz = 0;
 99                 sum.push_back(a[i]);
100                 sum1.push_back(a1[i]);
101             }
102             i++;
103         }
104     }
105     int flag_out = 0;//标记是否第一次输出,控制输出格式
106     if (fz == 1)cout << "0";
107     else
108     {
109         cout << sum.size() << ' ';
110         for (int i = 0; i < sum.size(); i++)
111         {
112                 if (flag_out == 0)
113                 {
114                     cout << setprecision(1) << fixed << sum[i] << ' ' << sum1[i];
115                     flag_out = 1;
116                 }
117                 else
118                 {
119                     cout << setprecision(1) << fixed << ' ' << sum[i] << ' ' << sum1[i];
120                 }
121             }
122     }
123     return 0;
124 }

 

标签:25,Ka,int,back,Polynomials,++,b1,push,1002
来源: https://www.cnblogs.com/2020R/p/12834612.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有