题解: 1、考虑符号 i = N 和非N的特判;2、考虑数字 i = 0 和 1 的特判;剩下的就是最正常的输出了。
参考代码:
#include <vector>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
#define INF 0x3f3f3f3f
#define MAX 20010
using namespace std;
int main()
{
int N, a, b;
cin >> N;
for(int i = N; i >= 0; i--)
{
cin >> a;
if(a == 0) continue;
b = a; if(a < 0) b = -a;
if(i == N)
{
if(a < 0) cout << "-";
}
else
{
if(a > 0) cout << "+";
if(a < 0) cout << "-";
}
if(i == 0) cout << b;
else if(i == 1)
{
if(b == 1) cout << "x";
else cout << b << "x";
}
else
{
if(b == 1) cout << "x^" << i;
else cout << b << "x^" << i;
}
}
return 0;
}