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;
}