题解 | 多项式输出-NOIP2009普及组复赛

多项式输出

https://ac.nowcoder.com/acm/contest/237/D

算法知识点: 字符串处理,模拟

复杂度:

解题思路:

从前往后依次处理每一项,依次考虑符号、系数、x、x的次数:

  • 如果系数是0,则直接continue;
  • 如果不是第一个非零项,且系数是正的,则输出'+';如果系数是负的,则无条件输出'-';
  • 如果系数的绝对值不是1,或者是常数项,则输出系数的绝对值;
  • 如果次数不为0,则输出x
  • 如果次数大于1,则输出次数

C++ 代码:

#include <iostream>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int n;
    cin >> n;
 
    bool is_first = true;
    for (int i = n; i >= 0; i -- )
    {
        int a;
        cin >> a;
 
        if (!a) continue;
 
        if (!is_first && a > 0) printf("+");
        else if (a < 0) printf("-");
        if (abs(a) != 1 || !i) printf("%d", abs(a));
        if (i) printf("x");
        if (i > 1) printf("^%d", i);
 
        is_first = false;
    }
 
    return 0;
}


另外,牛客暑期NOIP真题班限时免费报名
报名链接:https://www.nowcoder.com/courses/cover/live/248
报名优惠券:DCYxdCJ
全部评论

相关推荐

野猪不是猪🐗:😇:恭喜你以出色的表现成为xxx的一员 😨:您以进入本公司人才库 实际点开:您愿望单中的xxx正在特卖!
点赞 评论 收藏
分享
09-17 17:09
门头沟学院 Java
雨忄:有人给出过解法,拖晚点去,然后到时候再找其他理由商量,既增加他们的筛人成本,不一定会给你收回offer ,也能占位避免工贼
秋招的嫡长offer
点赞 评论 收藏
分享
评论
7
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务