90分,悬关

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

```cpp #include <bits/stdc++.h> using namespace std; int main() { int n,a[1000]; cin>>n; if(n==0){ cin>>a[1]; cout<<a[1]; return 0; } for(int i=n;i>=0;i--) cin>>a[i]; for(int i=n;i>=0;i--){ if(a[i]==0) continue; if(i==1){ if(a[i]>=1) cout<<"+"; if (abs(a[i]) != 1) cout<<a[i]<<"x"; else cout << "x"; } else if(i==n){ if(a[i]<0) cout<<"-"; if(a[i]==1||a[i]==-1) cout<<"x^"<<n; else cout<<abs(a[i])<<"x^"<<n; } else if(i==0){ if(a[i]<0) cout<<"-"; else cout<<"+"; cout<<abs(a[i]); } else{ if(a[i]<0) cout<<"-"; else cout<<"+"; if(a[i]==1||a[i]==-1) cout<<"x^"<<i; else cout<<abs(a[i])<<"x^"<<i; } } return 0; } ```
by weicongjun @ 2024-03-17 10:23:01


你输入 40 1 0 5 -2 -1 -5 4 -2 -4 1 -2 -5 4 2 -4 5 -4 -3 0 -4 -4 -1 -5 -3 3 1 5 1 5 2 4 2 0 2 -3 3 5 -2 3 -2 1 应该输出 x^40+5x^38-2x^37-x^36-5x^35+4x^34-2x^33-4x^32+x^31-2x^30-5x^29+4x^28+2x^27-4x^26+5x^25-4x^24-3x^23-4x^21-4x^20-x^19-5x^18-3x^17+3x^16+x^15+5x^14+x^13+5x^12+2x^11+4x^10+2x^9+2x^7-3x^6+3x^5+5x^4-2x^3+3x^2-2x+1 你的输出 x^40+5x^38-2x^37-x^36-5x^35+4x^34-2x^33-4x^32+x^31-2x^30-5x^29+4x^28+2x^27-4x^26+5x^25-4x^24-3x^23-4x^21-4x^20-x^19-5x^18-3x^17+3x^16+x^15+5x^14+x^13+5x^12+2x^11+4x^10+2x^9+2x^7-3x^6+3x^5+5x^4-2x^3+3x^2--2x+1 最后的不是输出 --2x
by weicongjun @ 2024-03-17 10:25:01


```cpp if(i==1){ if(a[i]>=1) cout<<"+"; else cout << "-"; if (abs(a[i]) != 1) cout<<a[i]<<"x"; else cout << "x"; } ``` 改成 ```cpp if(i==1){ if(a[i]>=1) cout<<"+"; if (abs(a[i]) != 1) cout<<a[i]<<"x"; else cout << "x"; } ``` 把 ```cpp else cout << "-"; ``` 去掉
by weicongjun @ 2024-03-17 10:26:40


|