【洛谷】P1067 多项式输出

时间:2023-03-10 01:48:55
【洛谷】P1067 多项式输出

原题链接:P1067 多项式输出

题目分析:学长推荐的OJ网站 ——洛谷,发现挺好用的还可以下载提交出错的数据。

废话就不多说了,这道题属于基础题。提交出错主要是因为一些小细节不到位,这里就不一一赘述了,直接上代码吧!


代码如下:

#include <bits/stdc++.h>
using namespace std; const int MAX = 105;
int n;
int num[MAX]; int main() {
int flag;
cin >> n; for (int i = 0; i <= n; i++) // 输入多项式的次数
cin >> num[i]; for (int i = 0; i <= n; i++) // 把 第一个不为 0 的项数赋值给 flag
if (num[i] != 0) {
flag = i;
break;
}
/* 非常数项的输出 */
for (int i = 0; i < n; i++) {
if (num[i] > 0) { // 系数大于 0
if (i != 0 || i != flag) cout << "+";
if (num[i] != 1) cout << num[i];
n - i == 1 ? cout << "x" : cout << "x^" << n - i;
} else if (num[i] < 0) { // 系数小于 0
if (num[i] != -1) cout << num[i];
else cout << "-";
n - i == 1 ? cout << "x" : cout << "x^" << n - i;
} else continue; // 系数为 0 时,跳过
}
/* 常熟项的输出 */
if (num[n] > 0) cout << "+" << num[n];
else if (num[n] < 0) cout << num[n];
cout << endl; return 0;
}