原题链接: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;
-
}