题解 P1067 【多项式输出】
撰写此题解,纪念本蒟蒻5次WA+2次CE的大水记录
一道water题啦~~但坑点极多
虽然DALAO可以秒过(所以我不是DALAO)
坑点①:一次项也要特判(因为不输出"^1");
坑点②:常数项判断if(为0) 不输出;
同楼下mou大佬 用光2次测试点下载-_-#
Here is the code:
(不介意抄袭)
#include<iostream> using namespace std; int s[101]; int main() { int n; cin>>n; for(int i=1;i<=n+1;i++) cin>>s[n-i+1]; if(!n) {cout<<0<<endl;return 0;} if(n==1) {cout<<s[1]<<endl;return 0;} if(!s[n]) ; else if(s[n]==1) cout<<"x^"<<n; else if(s[n]==-1) cout<<"-x^"<<n; else cout<<s[n]<<"x^"<<n; for(int i=n-1;i>1;i--) { if(!s[i]) continue; else if(s[i]==1) cout<<"+x^"<<i; else if(s[i]==-1) cout<<"-x^"<<i; else if(s[i]>0) cout<<"+"<<s[i]<<"x^"<<i; else cout<<s[i]<<"x^"<<i; } if(!s[1]) ; else if(s[1]==1) cout<<"+x"; else if(s[1]==-1) cout<<"-x"; else if(s[1]>0) cout<<"+"<<s[1]<<"x"; else cout<<s[1]<<"x"; if(!s[0]) ; else if(s[0]>0) cout<<"+"<<s[0]<<endl; else cout<<s[0]<<endl; return 0; }
end.