題目大意:
一元 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...