解题思路:
把各种情况写上就好
#include<iostream>
using namespace std;
int n, ans[105];
int main()
{
cin >> n;
int i, o;
for (i = 0; i <= n; ++i) cin >> ans[i];
if (ans[0] != 0) {
if (ans[0] == 1) cout << "x^" << n;
else if (ans[0] == -1) cout << "-x^" << n;
else cout << ans[0] << "x^" << n;
}
--n;
for (i = 1; n>=0; ++i) {
if (ans[i] != 0) {
if (n == 1) {
if (ans[i] == 1) cout << "+x";
else if (ans[i] == -1) cout << "-x";
else if (ans[i] != 1 && ans[i] > 0) cout << "+" << ans[i] << "x";
else cout << ans[i] << "x";
}
else if (n == 0) {
if (ans[i] > 0) cout << "+" << ans[i];
else cout << ans[i];
}
else if (ans[i] == 1) cout << "+x^" << n;
else if (ans[i] == -1) cout << "-x^" << n;
else if (ans[i] != 1 && ans[i] > 0) cout << "+" << ans[i] << "x^" << n;
else cout << ans[i] << "x^" << n;
--n;
}
else --n;
}
return 0;
}