这一题的关键点:
关键点1:判断是否是第一个输出的,然后看要不要输出 + 号
关键点2:x的指数为1的时候,不能输出 ^1
关键点3:当系数为正负一的时候,就要考虑那个1要不要输出,如果是最后一位,就要输出,否则就不要输出。
完整代码:
#include<iostream>
#include<iomanip>
#include<cstring>
#include<sstream>
#include<algorithm>
using namespace std;
int main(){
int n;
cin>>n;
int i=n;
int j=n;
int num=0;
int t=0;//用于统计是否是第一个输出
while(i>=0){
cin>>num;
if(num!=0){
if(j==1){
if(num>0){
if(num!=1){
if(t==0){
cout<<num<<"x";
}else{
cout<<"+"<<num<<"x";
}
}else{
if(t==0){
cout<<"x";
}else{
cout<<"+x";
}
}
}else{
if(num==-1){
cout<<"-x";
}else{
cout<<num<<"x";
}
}
}else if(j==0){
if(num>0){
if(t==0){
cout<<num;
}else{
cout<<"+"<<num;
}
}else{
cout<<num;
}
}else if(num>0){
if(num==1){
if(t==0){
cout<<"x^"<<j;
}else{
cout<<"+"<<"x^"<<j;
}
}else{
if(t==0){
cout<<num<<"x^"<<j;
}else{
cout<<"+"<<num<<"x^"<<j;
}
}
}else{
if(num==-1){
cout<<"-"<<"x^"<<j;
}else{
cout<<num<<"x^"<<j;
}
}
t++;
}
j--;
i--;
}
system("pause");
return 0;
}