10分,大佬们帮帮我

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

考虑a=-1的情况
by Ke9_qux @ 2022-09-03 16:37:40


@[zhizhi_c](/user/768144) 输入: 2 1 1 1 输出应该是:x^2+x+1 而你:x^2+x^1 问题: 1.x^1应该是x 2.最后一项没了。
by Starry_sky700 @ 2022-09-03 17:25:28


```cpp #include<stdio.h> using namespace std; int main(){ int a[101],n,i; scanf("%d",&n); for(i=0;i<=n;i++) scanf("%d",a+i); for(i=0;i<=n;i++){ if(a[i]){ if(a[i]<0){ putchar('-'); a[i]=-a[i]; } else if(i) putchar('+'); if(a[i]==1) printf("x^%d",n-i); else if(i==n) printf("%d",a[i]); else if(i==n-1) printf("%dx",a[i]); else printf("%dx^%d",a[i],n-i); } } return 0; } ``` 50分
by zhizhi_c @ 2022-09-03 21:42:42


@[zhizhi_c](/user/768144) 姐姐刷的题没你多 ###### QWQ
by _Yes @ 2022-10-05 20:29:37


@[zhizhi_c](/user/768144) ~~本蒟蒻第一次回帖QWQ~~ **问题一** 不妨试一试以下样例 ``` 9 -1 0 -7 0 0 0 0 100 1 8 ``` 你会发现你的输出是 ``` -x^9-7x^7+100x^2+x^1+8 ``` 而题目中要求省略x^1中的1。 按你做的程序,这非常不好判断,不信你把样例换成 ``` 9 -1 0 -7 0 0 0 0 100 2 8 ``` 只把最后的1改成了2,你的问题就没了 应该是特判少情况了 ###### 【疯狂眨眼】 问题二 再试一试以下样例 ``` 0 1 ``` 你会发现你的输出是 ``` x^0 ``` 而按照要求是1 (任何数的0次方为1) 多个if else人家也不管你,~~一看我就是惯犯~~ 我最多看到了这几个问题 ~~姐姐刷题没你多,能力有限,但模拟还是可以的~~ \\^o^/
by _Yes @ 2022-10-05 20:52:19


|