只有40分。。。。

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

改了一下还是40.。。。 ``` #include<iostream> using namespace std; int n,a[220]; int ans; void p(int x){ if(x>1)cout<<"+"<<x<<"x^"<<n; else if(x==-1)cout<<"-"<<"x^"<<n; else if(x==1)cout<<"+"<<"x^"<<n; else if(x<-1)cout<<x<<"x^"<<n; else if(x==0){ n--; return; } n--; } int main(){ int t=1; cin>>n; while(cin>>a[t])t++; for(int i=1;i<=t-2;i++){ if(i==1){ if(a[i]==0)break; cout<<a[i]<<"x^"<<n; n--; continue; } p(a[i]); } for(int i=1;i<=t-2;i++){ ans+=abs(a[i]); if(ans==0){ if(a[t-1]>0){cout<<a[t-1];return 0;} if(a[t-1]<0){cout<<a[t-1];return 0;} } } if(a[t-1]>0)cout<<"+"<<a[t-1]; else if(a[t-1]<0)cout<<a[t-1]; return 0; } ```
by better_Z @ 2023-07-04 18:43:35


当指数是一的时候,输出 $x$ 而不是 $x$ ^ ,显然您没有讨论这种情况。还有,建议您先通过样例再来讨论区
by dyyzy_qwq @ 2023-07-07 08:40:32


```c #include<bits/stdc++.h> using namespace std; int main(){ //freopen("isbn.in", "r", stdin); //freopen("isbn.out", "w", stdout); int n,a; cin>>n; for(int i=n;i>=0;i--){ cin>>a; if(a){ if(i!=n&&a>0)cout<<"+"; if(abs(a)>1||i==0)cout<<a; if(a==-1&&i)cout<<"-"; if(i>1)cout<<"x^"<<i; if(i==1)cout<<"x"; } } //fclose(stdin); //fclose(stdout); } ```
by 3_1415926 @ 2023-07-21 21:55:24


@[3_1415926](/user/1044555) 你抄题解你叫什么
by runcatchday @ 2023-07-22 12:12:32


@[runcatchday](/user/1025371) ?抄的是哪一篇?
by Tjaweiof @ 2023-07-24 16:38:45


@[Tjaweiof](/user/550933) 自己看第一篇题解啊
by runcatchday @ 2023-07-24 17:23:28


@[runcatchday](/user/1025371) 我去,加个文件输入输出都看不出来了……
by Tjaweiof @ 2023-07-24 21:49:33


@[Tjaweiof](/user/550933) 他前面还发了个帖说自己乱写竟然ac了,我都想给它骂死
by runcatchday @ 2023-07-24 22:10:14


|