P1067 多项式输出

 P1067 多项式输出 (坑题

  题目描述见洛谷官网:https://www.luogu.org/problemnew/show/P1067

  此题要非常注意细节!!!(坑

  附上我的辣鸡代码

  

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<vector>
 6 using namespace std;
 7 
 8 int main()
 9 {
10     
11     int n,temp;
12     while(scanf("%d",&n)!=EOF){
13         vector<int> 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<l;i++){
22             if(v[i]!=0) {
23                 st=i;
24                 break;
25             }
26             n--;
27         }
28         if(v[st]!=0&&v[st]!=1&&v[st]!=-1&&n>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<l-1;i++){
36             if(n>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 2
2 -2 2
2 2 -2
-2 -2 2
2 -2 -2
-2 2 -2
-2 -2 -2

0 0 0
-1 0 0
0 -1 0
0 0 -1
1 0 0
0 1 0
0 0 1
2 0 0
0 2 0
0 0 2
-2 0 0
0 -2 0
0 0 -2

 

这些数据都过了的话,应该就能AC。

posted @ 2018-09-25 13:06  南风--  阅读(203)  评论(0编辑  收藏  举报