洛谷 P1067 多項式輸出

2021-07-30 07:41:00 字數 1430 閱讀 7773

題目大意:

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

其中,aixi稱為 i 次項,ai 稱為 i 次項的係數。給出乙個一元多項式各項的次數和係數,請按照如下規定的格式要求輸出該多項式:

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

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

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

對於不是最高次的項,以「+」號或者「-」號連線此項與前一項,分別表示此項係數為正或者係數為負。緊跟乙個正整數,表示此項係數的絕對值(如果乙個高於 0 次的項,

其係數的絕對值為 1,則無需輸出 1)。如果 x 的指數大於 1,則接下來緊跟的指數部分的形式為「x^b」,其中 b 為 x 的指數;如果 x 的指數為 1,則接下來緊跟的指數部分形式為「x」;

如果 x 的指數為 0,則僅需輸出係數即可。

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

對於100%資料,0<=n<=100,-100<=係數<=100

題解:

對於每乙個係數s

0:跳過

非0:

s>0,若不是第乙個輸出的數,就輸出+

s<0,直接輸出-

s轉為絕對值:

判斷次數i

(1)i>1時,s<>1,則輸出【s,「x^」,i】。

不然不輸出s,輸出【』x^』,i】。

(2)i=1時,x^1=x,這時是s<>1就輸出 【s,「x」】,不然然直接輸出【「x」】

(3)i=0時,x^0=1,直接輸出係數。

var

x,n,i:longint;

f:boolean;

begin

readln(n);

f:=false;

for i:=n downto0do

begin

read(x);

if x<>0

then

begin

if x<0

then

write('-')

else

if (x>0) and (f)

then

write('+');

x:=abs(x);

if i<>0

then

begin

if x<>1

then

write(x);

write('x');

if i<>1

then

write('^',i);

end;

if i=0

then

write(x);

f:=true;

end;

end;

end.

洛谷 P1067 多項式輸出

其中,aixi稱為 i 次項,ai 稱為 i 次項的係數。給出乙個一元多項式各項的次數和係數,請按照如下規定的格式要求輸出該多項式 多項式中自變數為 x,從左到右按照次數遞減順序給出多項式。多項式中只包含係數不為 0 的項。如果多項式 n 次項係數為正,則多項式開頭不出現 號,如果多項式 n 次項係...

洛谷 P1067 多項式輸出

p1067 多項式輸出 廢話就不多說了,這道題屬於基礎題。提交出錯主要是因為一些小細節不到位,這裡就不一一贅述了,直接上 吧!如下 include using namespace std const int max 105 int n int num max int main 非常數項的輸出 for...

洛谷 P1067 多項式輸出

markdown編輯器複製這個修改太麻煩,索性直接貼上 了 如下 洛谷 p1067 多項式輸出 這是個簡單的模擬題,不算複雜。題目大意就是給你乙個數 n 以及 n 1 項係數,以降冪的方式輸出對應的一元n次多項式。需要注意的地方有 如下 include include include include...