70分求助

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

@[920106840507sd](/user/481075) 明显不对嘞
by Heyf @ 2021-03-04 09:04:36


@[920106840507sd](/user/481075) 其实最高次也不用提出来写 代码简洁一些
by Heyf @ 2021-03-04 09:27:46


改得再简洁些 ```cpp #include<bits/stdc++.h> using namespace std; int n; int a[110]; int main() { scanf("%d",&n); for(int i=0;i<=n;i++) scanf("%d",&a[i]); for(int i=0;i<=n;i++) { if(a[i]==0) continue; else if(a[i]<0) { printf("-"); a[i]=-a[i]; } else if(i!=0) printf("+"); if(i!=n) { if(a[i]!=1) printf("%d",a[i]); if(i!=n-1) printf("x^%d",n-i); else printf("x"); } else printf("%d",a[i]); } return 0; } ```
by Heyf @ 2021-03-04 09:42:46


帮你改的代码 看不懂的@我 ```cpp #include<bits/stdc++.h> using namespace std; int main() { int a; int p; cin>>p; a=p; int b[100]; for(int i=0;i<=p;i++) cin>>b[i]; if(b[0]!=1&&b[0]!=-1) cout<<b[0]<<"x^"<<a--; else { if(b[0]==1)cout<<"x^"<<a--; if(b[0]==-1)cout<<"-x^"<<a--; } for(int i=1;i<=p;i++) { if(b[i]==0) { a--; continue; } if(i==p-1) { if(b[i]!=1&&b[i]!=-1) { if(b[i]>0) cout<<"+"<<b[i]<<"x"; else cout<<b[i]<<"x"; } if(b[i]==1) cout<<"+x"; if(b[i]==-1) cout<<"-x"; continue; } if(i==p) { if(b[i]>0) cout<<"+"<<b[i]; else cout<<b[i]; break; } if(b[i]!=1&&b[i]!=-1) { if(b[i]>0) cout<<"+"<<b[i]<<"x^"<<a--; else cout<<b[i]<<"x^"<<a--; } if(b[i]==1) cout<<"+x^"<<a--; if(b[i]==-1) cout<<"-x^"<<a--; } return 0; } ```
by Heyf @ 2021-03-04 09:44:09


@[Heyf](/user/452544) 谢谢!!!!
by 920106840507sd @ 2021-03-04 18:05:28


|