为什么过不了啊,我感觉都考虑了一些错误啊??才10分!!

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

刚刚使用负数试了一下,改了一些错误,但还是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


|