30分,自己测试没问题,就是过不了

P1067 [NOIP2009 普及组] 多项式输出

自己测试不出问题一定是你太蒻了
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


|