1. 程式人生 > >P1067 多項式輸出

P1067 多項式輸出

代碼 %d stream ble www src strong cto print

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。

P1067 多項式輸出