原始题目
P1067 多项式输出
题目大意
给出n次多项式的各项系数,输出符合规范的多项式表达形式。
解题思路
模拟注意点:
- 最大项为正不需要加正号,其余各项需要
- x^1改为x
- 为0的时候跳过
解题代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e5 + 5;
#define rep(i, a, b) for (int i = a; i < b; ++i) #define per(i, a, b) for (int i = b - 1; i >= a; --i)
int a[maxn], b[maxn]; int n;
int main() { ios::sync_with_stdio(false); while (cin >> n) { per(i, 0, n + 1) { cin >> a[i]; if (i == 0) { if (a[i] == 0) cout << endl; else { if (a[i] > 0) cout << "+"; cout << a[i] << endl; } break; } else { if (a[i] == 0) continue; if (i != n && a[i] > 0) cout << "+"; if (abs(a[i]) == 1) { if (a[i] < 0) cout << "-"; if (i != 1) cout << "x^" << i; else cout << "x"; } else { cout << a[i]; if (i != 1) cout << "x^" << i; else cout << "x"; } } } cout << endl; } return 0; }
|
收获与反思
模拟注意细节。