平常題前廢話:ios
首先so amazing 的一件事,由於在洛谷上立下了的flag,而後此次考試前兩道題都是剛剛作過不久的題emmm(至關於白送200嗎qwq,可是這阻擋不了我第三題不會的腳步qwq)c++
好了來看題:ide
由於luogu上有題就不放原題了,直接放連接吧:多項式輸出【題目連接】spa
作到這道題是在洛谷普及練習場的第一個板塊:3d
所以很顯然,這就是一道模擬題;code
這道模擬雖然看起來好作,可是有不少不少的小細節須要處理,因此想獲得滿分也並不是那麼容易,幸運就幸運在我以前剛剛作了這道題,因此好多小細節就都瞭解到了qwqblog
而後感受考試時的代碼不如交luogu的簡單呢,考試處理的亂七八糟的又。ci
感受大模擬沒有什麼好講的qwq,就直接貼代碼吧:get
#include<bits/stdc++.h> using namespace std; int n,c; int main(){ scanf("%d",&n); if(n==0){ cin>>c; cout<<c; return 0; } for(int i=n;i>=0;i--){ cin>>c; if(c==0) continue; if((i!=n)&&(c>0)) cout<<"+"; if(c==1||c==-1){ if(c==-1&&i!=0) cout<<"-"; if(i==0) cout<<c; } else cout<<c; if(i==1) { cout<<"x"; continue; } if(i==0) break; cout<<"x^"; cout<<i; } }
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<string> #include<cmath> using namespace std; int n,g,z,first; int a; bool c; int main(){ freopen("poly.in","r",stdin); freopen("poly.out","w",stdout); scanf("%d",&n); if(n==1){ cin>>g>>z; if(g==0&&z==0) cout<<"0"; if(g!=0){ if(g==1||g==-1){ if(g==1) cout<<"x"; else cout<<"-x"; } else cout<<g<<"x"; } if(z!=0) { if(z>0) cout<<"+"<<z; else cout<<z; } return 0; } for(int i=n;i>=0;i--){ cin>>a; if(a){ if(a>0){ if(a==1&&i!=n&&i!=1&&i!=0){ if(c==1) cout<<"+"<<"x^"<<i; else cout<<"x^"<<i; } if(a!=1&&i!=n&&i!=1&&i!=0) { if(c==1) cout<<"+"<<a<<"x^"<<i; else cout<<a<<"x^"<<i; } if(i==n) { if(a==1)cout<<"x^"<<n; else cout<<a<<"x^"<<n; } if(i==1) { if(c==1){ if(a==1) cout<<"+"<<"x"; else cout<<"+"<<a<<"x"; } else{ if(a==1) cout<<"x"; else cout<<a<<"x"; } } if(i==0){ if(c==1) cout<<"+"<<a; else cout<<a; } } if(a<0){ if(a==-1&&i!=n&&i!=1&&i!=0) cout<<"-x^"<<i; if(a!=-1&&i!=n&&i!=1&&i!=0) cout<<a<<"x^"<<i; if(i==n){ if(a==-1)cout<<"-x^"<<n; else cout<<a<<"x^"<<n; } if(i==1) { if(a==-1) cout<<"-x"; else cout<<a<<"x"; } if(i==0) cout<<a; } } if(a) c=1; } if(c==0) cout<<0; return 0; }
end-string