模拟
可以分三部分处理:
1、先处理符号,系数小于0输出'-',系数大于0且不是最高项输出'+';
2、其次处理项的系数,当系数绝对值非1或为常数项时直接输出该系数的绝对值;
3、最后处理项,非常数项输出'x',次数大于1的项输出'^'和次数。
(或者分四种情况,第n项,第1项,常数项,其它项,但这种方法写起来可能比较繁琐,比如说第n项情况里要考虑n是不是为0或1,如果是的话就只输出常数或系数+'x'...)
#include <bits/stdc++.h>
using namespace std;
int main()
{
int num,n;
cin>>n;
for(int i = n;i >= 0;i--){
cin>>num;
if(!num) continue;
//先处理符号
if(num < 0) cout<<"-";
else if(i != n) cout<<"+";
//再处理项的系数
if(abs(num) != 1 || i == 0) cout<<abs(num);
//最后处理项
if(i > 0) cout<<"x";
if(i > 1) cout<<"^"<<i;
}
return 0;
}