P1067 多項式輸出 模擬

2021-10-24 09:26:30 字數 1971 閱讀 9250

題目描述

一元nnn次多項式可用如下的表示式表示:

f(x)=anxn+an−1xn−1+⋯+a1x+a0,an≠0f(x)=a_nxn+a_x+\cdots +a_1x+a_0,a_n\ne 0 f(x)=an​xn+an−1​xn−1+⋯+a1​x+a0​,an​​=0

其中,aixia_ix^iai​xi稱為iii次項,aia_iai​ 稱為iii次項的係數。給出乙個一元多項式各項的次數和係數,請按照如下規定的格式要求輸出該多項式:

多項式中自變數為x xx,從左到右按照次數遞減順序給出多項式。

多項式中只包含係數不為000的項。

如果多項式nnn次項係數為正,則多項式開頭不出現「+」號,如果多項式nnn次項係數為負,則多項式以「-」號開頭。

對於不是最高次的項,以「+」號或者「-」號連線此項與前一項,分別表示此項係數為正或者係數為負。緊跟乙個正整數,表示此項係數的絕對值(如果乙個高於000次的項,其係數的絕對值為111,則無需輸出 111)。如果***的指數大於111,則接下來緊跟的指數部分的形式為「xbx^bxb」,其中 bb b為 xx x的指數;如果 ***的指數為1 11,則接下來緊跟的指數部分形式為「***」;如果 *** 的指數為0 00,則僅需輸出係數即可。

多項式中,多項式的開頭、結尾不含多餘的空格。

輸入格式

輸入共有 222 行

第一行1 11 個整數,nnn,表示一元多項式的次數。

第二行有 n+1n+1 n+1個整數,其中第i i i個整數表示第n−i+1 n-i+1n−i+1 次項的係數,每兩個整數之間用空格隔開。

輸出格式

輸出共 111 行,按題目所述格式輸出多項式。

輸入輸出樣例

輸入 #1

5100 -1 1 -3 0 10

輸出 #1

100x5-x4+x3-3x2+10

輸入 #2

3-50 0 0 1

輸出 #2

-50x^3+1

說明/提示

noip 2009 普及組 第一題

對於100%資料,0≤n≤1000 \le n \le 1000≤n≤100,−100≤-100 \le −100≤係數≤100 \le 100≤100

#include

#include

#include

using

namespace std;

int n;

int a[

1000];

string getstr

(int x)

reverse

(tem.

begin()

, tem.

end())

;if(tem =="")

tem =

"0";

return tem;

}void

solve()

if(i == n -1)

str +

="x^"

;int cur = n - i;

tem =

getstr

(cur)

; str +

= tem;

}int num = a[n];if

(num <0)

str +

='-'

;else

if(num >0)

str +

='+'

; string tem =

getstr

(abs

(num));

if(tem !=

"0")

str +

= tem;

if(str[0]

!='+'

) cout << str << endl;

else

cout << endl;

}int

main()

P1067 多項式輸出(模擬)

題目鏈結 p1067 多項式輸出 luogu 應用題庫 訓練比賽 記錄討論 21.2k 通過74.5k 提交題目提供者 ccf noi 評測方式 雲端評測 標籤 noip普及組2009 難度 普及 時空限制 1000ms 128mb 其中,a ix ia i x i稱為ii次項,a ia i 稱為i...

模擬 P1067 多項式輸出

考點 模擬 字串 這是一道水題,水題能卡人往往是有某些資料沒考慮到。題意 輸入係數,輸出多項式。解法 需要把所有特殊情況考慮到,分別是 1x 輸出為 x 1x 輸出為 x 第一項的係數為 不能輸出 號 係數為0不輸出 x 0僅輸出係數 x 1輸出為x 我的做法是先不考慮這些特殊情況,把係數和指數全部...

P1067 多項式輸出

題目描述 一元 n 次多項式可用如下的表示式表示 其中,aixi稱為 i 次項,ai 稱為 i 次項的係數。給出乙個一元多項式各項的次數和係數,請按照如下規定的格式要求輸出該多項式 多項式中自變數為 x,從左到右按照次數遞減順序給出多項式。多項式中只包含係數不為 0 的項。如果多項式 n 次項係數為...