【洛谷】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;
}