刚刚使用负数试了一下,改了一些错误,但还是10分!!!
```c
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n+1]={0};
for(int i=0;i<=n;i++){
cin>>a[i];
}
cout<<a[0]<<"x^"<<n;
for(int i=1;i<n-1;i++){
if(a[i]>0)cout<<"+"<<a[i]<<"x^"<<n-i;
else if(a[i]<0)cout<<a[i]<<"x^"<<n-i;
}
if(a[n-1]>0)cout<<"+"<<a[n-1]<<"x";
else if(a[n-1]<0)cout<<a[n-1]<<"x";
if(a[n]>0)cout<<"+"<<a[n];
else if(a[n]<0)cout<<a[n];
}
```
by liaohanwurao @ 2021-10-14 09:00:38
我觉得您可能要再改改
hack:
```
Input:
3
-1 0 1 -2
Output:
-1x^3+1x-2
Answer:
-x^3+x-2
```
by devans @ 2021-10-14 09:11:17
@[siXYZit](/user/199139) 大概知道哪里出问题了,对于-1,0和1三个数我没处理好。这题看着简单,坑有点多啊,三个数特殊处理,第一个数倒数第二第一个数都是坑
```c
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[n+1]={0};
for(int i=0;i<=n;i++){
cin>>a[i];
}
if(a[0]==1){
cout<<"x^"<<n;
}
else if(a[0]==-1){
cout<<"-x^"<<n;
}
else{
cout<<a[0]<<"x^"<<n;
}
for(int i=1;i<n-1;i++){
if(a[i]>1)cout<<"+"<<a[i]<<"x^"<<n-i;
else if(a[i]<-1)cout<<a[i]<<"x^"<<n-i;
else if(a[i]==1)cout<<"+"<<"x^"<<n-i;
else if(a[i]==-1)cout<<"-x^"<<n-i;
}
if(a[n-1]>1)cout<<"+"<<a[n-1]<<"x";
else if(a[n-1]<-1)cout<<a[n-1]<<"x";
else if(a[n-1]==1)cout<<"+"<<"x";
else if(a[n-1]==-1)cout<<"-x";
if(a[n]>0)cout<<"+"<<a[n];
else if(a[n]<0)cout<<a[n];
}
```
by liaohanwurao @ 2021-10-14 09:13:51