P1067 多项式输出 (字符串&细节)
题意:给定一元n次多项式的n+1个系数,输出该多项式。
思路:detail1: 注意判断an和a0.
detail2:系数绝对值为1和0的情况.
detail3:还有指数为1的情况.
detail4:不为第一个系数的正数要加上’+‘
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,x;
cin>>n;
string s="";
cin>>x;
if(x>0){ //对第一项特判
if(x!=1) s+=to_string(x);
}
else if(x<0){
if(x!=-1) s+=to_string(x);
else s+='-';
}
s+="x^"+to_string(n);
for(int i=1;i<n;i++){
cin>>x;
if(!x) continue;
if(x<0){
if(x==-1) s+='-';
else s+=to_string(x);
}
else {
s+='+';
if(x!=1) s+=to_string(x);
}
s+="x";
if(n-i!=1) s+='^'+to_string(n-i);//特判指数为1的情况
}
cin>>x;
if(x>0) s+='+'+to_string(x); //特判最后一项。
else if(x<0) s+=to_string(x);
cout<<s<<endl;
return 0;
}