题解 P1067 【多项式输出】
minidiqv
·
·
题解
#include<iostream>
using namespace std;
int a[110];
int main() {
int n;
cin>>n;
for(int i=1; i<=n+1; i++)
cin>>a[i];
int nn=n;
if(a[1]!=1&&a[1]!=-1&&a[1]!=0) {
if(nn!=0)
cout<<a[1]<<"x^"<<nn;
else
cout<<a[1];
} else if(a[1]==1) {
if(nn!=0)
cout<<"x^"<<nn;
else
cout<<a[1];
}
else if(a[1]==-1) {
if(nn!=0)
cout<<"-x^"<<nn;
else
cout<<a[1];
}
for(int i=2; i<n; i++) {
if(a[i]>0&&a[i]!=1) {
nn--;
cout<<'+'<<a[i]<<"x^"<<nn;
} else if(a[i]<0&&a[i]!=-1) {
nn--;
cout<<a[i]<<"x^"<<nn;
} else if(a[i]==0)
nn--;
else if(a[i]==1) {
nn--;
cout<<'+'<<"x^"<<nn;
} else if(a[i]==-1) {
nn--;
cout<<'-'<<"x^"<<nn;
}
}
if(a[n]==1)
cout<<'+'<<'x';
if(a[n]==-1)
cout<<'-'<<'x';
else if(a[n]>1)
cout<<'+'<<a[n]<<'x';
else if(a[n]<0)
cout<<a[n]<<'x';
if(a[n+1]>0)
cout<<'+'<<a[n+1];
else if(a[n+1]<0)
cout<<a[n+1];
}