博客
关于我
PTA1002
阅读量:213 次
发布时间:2019-02-28

本文共 1873 字,大约阅读时间需要 6 分钟。

为了解决这个问题,我们需要对两个多项式A和B进行相加,并按照特定格式输出结果。多项式的项由指数和系数组成,相加时需要将相同指数的项相加。我们将使用数组来存储多项式的各项,确保相加过程准确无误。

方法思路

  • 读取输入:每个测试用例包含两行,分别表示多项式A和B的信息。
  • 解析多项式:将多项式A和B的各项解析为指数和系数,并存储到数组中。
  • 相加多项式:将多项式A和B中的对应指数项相加,结果存储到一个数组中。
  • 生成输出:从最高指数到最低指数遍历结果数组,收集非零项,按指数顺序输出,保留一位小数。
  • 解决代码

    #include 
    #include
    #include
    #include
    #include
    using namespace std;int main() { int n; cin >> n; double a[1001] = {0.0}; // 存储多项式系数,索引为指数 for (int test = 0; test < n; ++test) { // 读取多项式A int kA; vector
    > termsA; cin >> kA; for (int i = 0; i < kA; ++i) { int exp, coeff; cin >> exp >> coeff; termsA.push_back(make_pair(exp, coeff)); } // 更新多项式A的系数 for (const auto& term : termsA) { a[term.first] += term.second; } // 读取多项式B int kB; vector
    > termsB; cin >> kB; for (int i = 0; i < kB; ++i) { int exp, coeff; cin >> exp >> coeff; termsB.push_back(make_pair(exp, coeff)); } // 更新多项式B的系数 for (const auto& term : termsB) { a[term.first] += term.second; } // 收集结果 vector
    parts; for (int exp = 1000; exp >= 0; --exp) { if (a[exp] != 0) { stringstream ss; ss << fixed << setprecision(1); ss << a[exp]; string coeffStr = ss.str(); // 去掉小数点后的零 size_t dotPos = coeffStr.find('.'); if (dotPos != string::npos && coeffStr[dotPos+1] == '0') { coeffStr = coeffStr.substr(0, dotPos); } parts.push_back(to_string(exp) + " " + coeffStr); } } // 拼接结果字符串 string result; for (size_t i = 0; i < parts.size(); ++i) { if (i != 0) { result += " "; } result += parts[i]; } // 处理特殊情况:没有项的情况 if (result.empty()) { cout << "0"; } else { // 去除最后的空格 if (!result.empty() && result.back() == ' ') { result.pop_back(); } cout << result; } } return 0;}

    代码解释

  • 读取输入:首先读取测试用例的数量n,然后逐个读取每个测试用例的两行输入。
  • 解析多项式:将多项式A和B的各项解析为指数和系数,存储到向量中,并更新结果多项式的系数数组。
  • 相加多项式:将多项式A和B中的对应指数项相加,存储到数组a中。
  • 生成输出:从最高指数到最低指数遍历数组a,收集非零项,格式化输出,确保保留一位小数,并去除多余的小数零。最后拼接结果字符串并输出。
  • 转载地址:http://gfbs.baihongyu.com/

    你可能感兴趣的文章
    SpringBoot中重写addCorsMapping解决跨域以及提示list them explicitly or consider using “allowedOriginPatterns“ in
    查看>>
    PageHelper 解析及实现原理
    查看>>
    pageHelper分页工具的使用
    查看>>
    PageHelper:上手教程(最详细)
    查看>>
    PageOffice如何实现从零开始动态生成图文并茂的Word文档
    查看>>
    PageRank算法
    查看>>
    Paint类(画笔)
    查看>>
    paip.android 手机输入法制造大法
    查看>>
    paip.spring3 mvc servlet的配置以及使用最佳实践
    查看>>
    Palindrome Number leetcode java
    查看>>
    Palo Alto Networks Expedition 未授权SQL注入漏洞复现(CVE-2024-9465)
    查看>>
    Palo Alto Networks PAN-OS身份认证绕过导致RCE漏洞复现(CVE-2024-0012)
    查看>>
    Panalog 日志审计系统 libres_syn_delete.php 前台RCE漏洞复现
    查看>>
    Panalog 日志审计系统 sprog_deletevent.php SQL 注入漏洞复现
    查看>>
    Panalog 日志审计系统 sprog_upstatus.php SQL 注入漏洞复现(XVE-2024-5232)
    查看>>
    pandas :将多列汇总为一列,没有最后一列
    查看>>
    pandas :将时间戳转换为 datetime.date
    查看>>
    pandas :将行取消堆叠到新列中
    查看>>
    pandas DataFrame 中的自定义浮点格式
    查看>>
    Pandas DataFrame 的 describe()方法详解-ChatGPT4o作答
    查看>>