【样例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