90分玄关 WAon#11

P1067 [NOIP2009 普及组] 多项式输出

wangqiyu_why @ 2024-12-10 19:43:38

#include<bits/stdc++.h>
using namespace std;
int a[500000],b[1000],n,r,z=1,y=1,sum;
bool au=0;
int main()
{

    cin>>n;
    for(int i=n;i>=0;i--)
    {
        cin>>a[i];
    }
    if(n==0)
    {
        cout<<0;
        return 0;
    }
    for(int i=n;i>=0;i--)
    {
        if(i==0)
        {
            if(a[i]==0)
            {
                break;
            }
            if(a[i]>0)
            {
                cout<<'+'<<a[i];
            }
            else
            {
                cout<<a[i];
            }
        }
        else if(i==1&&i!=n)
        {
            if(a[i]==0)
            {
                continue;
            }
            else if(a[i]==1)
            {
                cout<<"+x";
            }
            else if(a[i]==-1)
            {
                cout<<"-x";
            }
            else
            {
                cout<<a[i]<<"x";
            }
        }
        else if(i==n&&i==1)
        {
            if(a[i]==0)
            {
                continue;
            }
            else if(a[i]==1)
            {
                cout<<"x";
            }
            else if(a[i]==-1)
            {
                cout<<"-x";
            }
            else
            {
                cout<<a[i]<<"x";    
            }
        }
        else if(i==n&&i!=1)
        {
            if(a[i]==0)
            {
                continue;
            }
            else if(a[i]==1)
            {
                cout<<"x^"<<i;
            }
            else if(a[i]==-1)
            {
                cout<<"-x^"<<i;
            }
            else
            {
                cout<<a[i]<<"x^"<<i;
            }
        }
        else if(a[i]==0)
        {
            continue;
        }
        else if(a[i]==1)
        {
            cout<<"+x^"<<i;
        }
        else if(a[i]==-1)
        {
            cout<<"-x^"<<i;
        }
        else
        {
            if(a[i]>0)
            {
                cout<<'+';
            }
            cout<<a[i]<<"x^"<<i;
        }
    }
    return 0;
}

|