天天看點

洛谷P1067 多項式輸出

洛谷P1067 多項式輸出

一隻鶸的刷題記錄
題目描述
洛谷P1067 多項式輸出

輸入格式

輸入共有 2 行

第一行1 個整數,n,表示一進制多項式的次數。

第二行有 n+1個整數,其中第i個整數表示第n-i+1次項的系數,每兩個整數之間用空格隔開。

輸出格式

輸出共 1 行,按題目所述格式輸出多項式。

輸入輸出樣例

輸入 #1

5

100 -1 1 -3 0 10

輸出 #1

100x5-x4+x3-3x2+10

輸入 #2

3

-50 0 0 1

輸出 #2

-50x^3+1

//本質上就是一個簡單的模拟,題解最高贊的方法很簡潔,記錄于此

#include <bits/stdc++.h>

using namespace std;

//int poly[105];
int main()
{
    int n,a;
    cin>>n;
    for(int i=n;i>=0;i--)
    {
        cin>>a;
        if(a){    //判0系數
            if(i!=n&&a>0)cout<<"+";    //根據正負、是否為最高此項決定加号
            if(abs(a)>1||i==0)cout<<a;    //輸出系數(系數不為正負1或指數為0)
            if(a==-1&&i)cout<<"-";    //-1系數特判,常數項已特判
            if(i>1)cout<<"x^"<<i;    //二次及以上輸出指數
            if(i==1)cout<<"x";    //一次項
        }
    }
    cout<<endl;

    return 0;
}