AcWing 437. 多项式输出
原题链接
简单
作者:
czawa
,
2021-10-01 20:52:31
,
所有人可见
,
阅读 212
// acwing 437. ip09jT2 多项式输出
#include <iostream>
#include <cstdio>
using namespace std;
int a[100010];
int main()
{
int n;
cin >> n;
for (int i = n + 1; i >= 1; i --)
scanf ("%d", &a[i]);
bool flag = false;
for (int i = n + 1; i >= 1; i --)
{
if (a[i] == 0) continue;
if (i == 1)
{
if (flag && a[i] > 0) putchar('+');
printf("%d", a[i]); continue;
}
if (i == 2)
{
if (flag && a[i] > 0) putchar('+');
if (a[i] == -1)
{
putchar('-');
}
else if (a[i] != 1)
{
printf("%d", a[i]);
}
putchar('x'); continue;
}
if (a[i] < 0)
{
putchar('-');
a[i] = -a[i];
}
else
{
if (flag) putchar('+');
}
if (a[i] == 1)
{
if (i == 1) printf("x");
else printf("x^%d", i - 1);
}
else
{
printf("%dx^%d", a[i], i - 1);
}
flag = true;
}
if (flag == false) puts("0");
return 0;
}