View difference between Paste ID: teUeRWrP and jW1UvzUG
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