【样例1】
5
100 -1 1 -3 0 10
【样例2】
3
-50 0 0 1
【样例1】
100x^5-x^4+x^3-3x^2+10
【样例2】
-50x^3+1
#include <cmath>
#include <cstring>
#include <iostream>
using namespace std;
int n, sum, a;
int main(){
cin >> n;
for (int i = n; i >= 0; i --){
int x;
cin >> x;
if (i == n){
if (x == 0) continue;
else if (x == 1) printf("x^%d", i);
else if (x == -1) printf("-x^%d", i);
else if (x > 1) printf("%dx^%d", x, i);
else printf("%dx^%d", x, i);
}
else if (i > 1 && i < n){
if (sum != 0){
if (x == 0) continue;
else if (x == 1) printf("+x^%d", i);
else if (x == -1) printf("-x^%d", i);
else if (x > 1) printf("+%dx^%d", x, i);
else printf("%dx^%d", x, i);
}
else{
if (x == 0) continue;
else if (x == 1) printf("x^%d", i);
else if (x == -1) printf("-x^%d", i);
else if (x > 1) printf("%dx^%d", x, i);
else printf("%dx^%d", x, i);
}
}
else if (i == 1){
if (sum != 0){
if (x == 0) continue;
else if (x == 1) printf("+x");
else if (x == -1) printf("-x");
else if (x > 1) printf("+%dx", x);
else printf("%dx", x);
}
else{
if (x == 0) continue;
else if (x == 1) printf("x");
else if (x == -1) printf("-x");
else if (x > 1) printf("%dx", x);
else printf("%dx", x);
}
}
else{
if (sum != 0){
if (x == 0) puts("");
else if (x > 0) printf("+%d\n", x);
else printf("%d\n", x);
}
else{
if (x == 0) puts("");
else if (x > 0) printf("%d\n", x);
else printf("%d\n", x);
}
}
if (sum != 0) continue;
else sum += x;
}
return 0;
}
原文:https://www.cnblogs.com/Iamcookieandyou/p/13285619.html