#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,i;
    cin>>n;
    int num1;
    for(i=n;i>=1;i--)
    {
        cin>>num1;
        if(num1!=0)
        {
            if(num1<0)
            {
                if(num1!=-1)
                {    
                    if(i!=1)
                        cout<<num1<<"x^"<<i;
                    else
                        cout<<num1<<'x';
                }
                else
                {
                    if(i!=1) cout<<"-x^"<<i;
                    else cout<<"-x";
                }
                    
            }
            
            if(num1>0)
            {
                if(i!=n)
                {
                    if(num1!=1)
                    {
                        if(i!=1) cout<<'+'<<num1<<"x^"<<i;
                        else cout<<'+'<<num1<<"x";
                    }
                        
                    else
                    {
                        if(i!=1) cout<<"+x^"<<i;
                        else cout<<"+x";
                    }

                }
                
                else
                {
                    if(num1!=1) cout<<num1<<"x^"<<i;
                    else cout<<"x^"<<i;
                } 
            }
        }
    }
    cin>>num1;
    if(num1>0)
    {
        cout<<"+"<<num1;
    }
    else if(num1<0)
        cout<<num1;
    else
        return 0;
}

这道题如果硬做就要考虑很多种情况,说一下最容易不过的两个点 太鹅心啦

第一个点是全为0的时候不输出

第二个点是最高项系数为1的时候输出x^n不是1x^n