自己测试不出问题一定是你太蒻了
by 权御天下 @ 2018-10-07 17:34:30
**~~洛谷用户普遍低龄化~~**
by 7KByte @ 2018-10-07 17:43:37
@[Gang_Leader](/space/show?uid=119261) 过分了啊哈哈哈
by buaa_czx @ 2018-10-07 17:48:00
我拿你这个测试了一下
有问题,在输入1的时候输出不会是1x,直接输出x!
你就拿本题第一个样例吧,在第二个组合输出-1x^4就有问题……
这边要多一个判定,在第一个数字等于1或者-1的时候就直接输出x或者-x
by 天下第一! @ 2018-10-07 17:51:44
我表示这题就是大模拟
大坑:
```cpp
/*
1.x^1只要输出x
2.-1x^k只要输出-x^k,1x只要输出x^k
3.0x不用输出
4.正数打头,没有+;负数打头,要带-;
5.不是打头的情况,正数要输出+,负数要输出-
6.系数是1不用输出,但如果常数是1是要输出的
7.-1也符合6的情况
*/
```
代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
int a[200];
int n;
int main()
{
scanf("%d",&n);
for(int i=0;i<=n;i++)
{
scanf("%d",&a[i]);
}
reverse(a,a+n+1);
for(int i=n;i>=0;i--)
{
int num=a[i];
int p=i;
if (num==0) continue;
else
{
if (num>0)
{
if (i!=n) putchar('+');
if (num!=1 or i==0) printf("%d",num);
if (p!=0 and p!=1) printf("x^%d",p);
else if (p==1) printf("x");
}
if (num<0)
{
防和谐注释
//去掉注释就可以AC了
//当然还有"防和谐注释"五个字
/*
if (num==-1)
{
if (p!=0 and p!=1)
{
printf("-x^%d",p);
}
else if (p==1)
{
printf("-x");
}
else
{
printf("-1");
}
}
else
{
if (p!=0 and p!=1)
{
printf("%dx^%d",num,p);
}
else if (p==1)
{
printf("%dx",num);
}
else
{
printf("%d",num);
}
}
*/
}
}
}
putchar('\n');
}
```
by LightningUZ @ 2018-10-07 17:59:28