NC16622 [NOIP2009]多项式输出


题目

  • 原题地址:多项式输出
  • 题目编号:NC16622
  • 题目类型:模拟
  • 时间限制:C/C++ 1秒,其他语言2秒
  • 空间限制:C/C++ 131072K,其他语言262144K

1.题目大意

  • 给出多项式次数和系数,将其转换为具体多项式形式

2.题目分析

  • 注意一下第一项以后每一项的符号连接和系数绝对值为-1的情况就行了

3.题目代码

#include 

using namespace std;

int main() {
    int n;
    cin >> n;
    n += 1;
    int tmp;
    int flag = 0;
    while(n--)
    {
        cin >> tmp;
        if(tmp==0)
            continue;
        if(!flag)
        {
            if(n==0)
            {
                cout << tmp;
                break;
            }
            if(abs(tmp)==1)
            {
                if(tmp<0)
                    cout << "-";
            }
            else
            {
                cout << tmp;
            }
            if(n==1)
                cout << "x";
            else
                cout << "x^" << n;
            flag = 1;
        }
        else
        {
            if(tmp>0)
                cout << "+";
            if(n==0)
            {
                cout << tmp;
                break;
            }
            if(abs(tmp)==1)
            {
                if(tmp<0)
                    cout << "-";
            }
            else
            {
                cout << tmp;
            }
            if(n==1)
                cout << "x";
            else
                cout << "x^" << n;
        }
    }
}