SHOW:
|
|
- or go back to the newest paste.
1 | #include <iostream> | |
2 | using namespace std; | |
3 | ||
4 | int main() | |
5 | { | |
6 | int in[9]; | |
7 | while(cin>>in[0]) | |
8 | { | |
9 | for(int i=1;i<9;i++) | |
10 | { | |
11 | cin>>in[i]; | |
12 | } | |
13 | ||
14 | bool first=1; | |
15 | for(int i=0;i<9;i++) | |
16 | { | |
17 | if(in[i]>0) | |
18 | { | |
19 | if(!first) | |
20 | { | |
21 | cout<<" + "; | |
22 | } | |
23 | if(in[i]!=1||8-i==0) | |
24 | cout<<in[i]; | |
25 | if(8-i==1) | |
26 | { | |
27 | cout<<"x"; | |
28 | } | |
29 | else if(8-i!=0) | |
30 | { | |
31 | cout<<"x^"<<8-i; | |
32 | } | |
33 | first=0; | |
34 | } | |
35 | else if(in[i]<0) | |
36 | { | |
37 | if(!first) | |
38 | { | |
39 | cout<<" - "; | |
40 | } | |
41 | else | |
42 | { | |
43 | cout<<"-"; | |
44 | } | |
45 | if(in[i]!=-1||8-i==0) | |
46 | cout<<-in[i]; | |
47 | if(8-i==1) | |
48 | { | |
49 | cout<<"x"; | |
50 | } | |
51 | else if(8-i!=0) | |
52 | { | |
53 | cout<<"x^"<<8-i; | |
54 | } | |
55 | first=0; | |
56 | } | |
57 | else if(i==8&&in[8]==0&&first) | |
58 | { | |
59 | cout<<"0"; | |
60 | } | |
61 | } | |
62 | cout<<endl; | |
63 | } | |
64 | } | |
65 | ||
66 | //給你一個數學多項式的係數,從8次方到0次方。你的任務是把一些不需要的項次拿掉,然後以易讀的格式來輸出。例如:給你 0, 0, 0, 1, 22, -333, 0, 1, -1這9個係數,你應該要產生這樣的輸出: x^5 + 22x^4 - 333x^3 + x - 1 | |
67 | //以下是詳細格式的規則: | |
68 | //項次必須按降冪出現 | |
69 | //指數部分出現在^符號之後 | |
70 | //常數項只要出現常數部分就好了,不需有x^0 | |
71 | //只有係數非0的項次才需出現。如果所有的係數都是0,那只要輸出常數項就可以了 | |
72 | //介於項次之間的+號和-號兩邊各有一空白字元 | |
73 | //假如第一項的係數是正的,那麼該係數不需要符號。如果第一項的係數是負的,那該係數必須有-這個符號。例如:-7x^2 + 30x + 66 | |
74 | //若係數為負,則以減一個正數來表示(除了上面第6條所提到的第一項之外),而非以加一個負數來表示。例如:x^2 + -3x 這樣的表示法是錯誤的,應該是:x^2 - 3x才對 | |
75 | //1或-1,除了常數項之外都不應該出現。例如:-1x^3 + 1x^2 + 3x^1 - 1 這樣的表示法是錯誤的,應該是:-x^3 + x^2 + 3x - 1 才對 | |
76 | // | |
77 | //輸入說明 | |
78 | //每組測試資料一列,含有9個整數(絕對值都小於1000)。串流結束表示測資結束。 | |
79 | // | |
80 | //輸出說明 | |
81 | //對每一組資料,依照上面的規則產生對應的多項式。 | |
82 | // | |
83 | //範例輸入 | |
84 | //0 0 0 1 22 -333 0 1 -1 | |
85 | //0 0 0 0 0 0 -55 5 0 | |
86 | // | |
87 | //範例輸出 | |
88 | //x^5 + 22x^4 - 333x^3 + x - 1 | |
89 | //-55x^2 + 5x |