P1067 多项式输出 (坑题
题目描述见洛谷官网:
此题要非常注意细节!!!(坑
附上我的辣鸡代码
1 #include2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 int main() 9 {10 11 int n,temp;12 while(scanf("%d",&n)!=EOF){13 vector v;14 int f=1;15 for(int i=0;i<=n;i++){16 cin>>temp;17 if(temp!=0) f=0;18 v.push_back(temp);19 }20 int l=v.size(),st;21 for(int i=0;i 1) printf("%dx^%d",v[st],n);29 else if(v[st]!=0&&v[st]!=1&&n==1&&v[st]!=-1) printf("%dx",v[st]);30 else if(v[st]==1&&n>1) printf("x^%d",n);31 else if(v[st]==1&&n==1) printf("x");32 else if(v[st]==-1&&n>1) printf("-x^%d",n);33 else if(v[st]==-1&&n==1) printf("-x");34 n--;35 for(int i=st+1;i 1){37 if(v[i]!=-1&&v[i]!=1&&v[i]!=0&&v[i]>0) printf("+%dx^%d",v[i],n--);38 else if(v[i]!=-1&&v[i]!=1&&v[i]!=0&&v[i]<0) printf("%dx^%d",v[i],n--);39 else if(v[i]==1) printf("+x^%d",n--);40 else if(v[i]==-1) printf("-x^%d",n--);41 else if(v[i]==0) --n;42 }43 else {44 if(v[i]!=-1&&v[i]!=1&&v[i]!=0&&v[i]>0) printf("+%dx",v[i]);45 else if(v[i]!=-1&&v[i]!=1&&v[i]!=0&&v[i]<0) printf("%dx",v[i]);46 else if(v[i]==1) printf("+x");47 else if(v[i]==-1) printf("-x");48 else if(v[i]==0) --n;49 }50 }51 if(v[l-1]>0) printf("+%d\n",v[l-1]);52 else if(v[l-1]<0) printf("%d\n",v[l-1]);53 else if(f) printf("0\n");54 else printf("\n");55 }56 57 return 0;58 }
下面是几组容易出错的数据(n==2)
2 2 2
-2 2 22 -2 22 2 -2-2 -2 22 -2 -2-2 2 -2-2 -2 -20 0 0
-1 0 00 -1 00 0 -11 0 00 1 00 0 12 0 00 2 00 0 2-2 0 00 -2 00 0 -2
这些数据都过了的话,应该就能AC。