題目描述
一元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)=anxn+an−1xn−1+⋯+a1x+a0,an=0
其中,aixia_ix^iaixi稱為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 次項係數為...