1. 程式人生 > >洛谷P1067 多項式輸出題解

洛谷P1067 多項式輸出題解

表示 輸入輸出格式 color clas none tin ios spl 正整數

題目描述

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

技術分享圖片

其中,a_ix^iai?xi稱為ii次項,a_iai? 稱為ii次項的系數。給出一個一元多項式各項的次數和系數,請按照如下規定的格式要求輸出該多項式:

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

  2. 多項式中只包含系數不為00的項。

  3. 如果多項式nn次項系數為正,則多項式開頭不出現“++”號,如果多項式nn次項系

數為負,則多項式以“-−”號開頭。

4. 對於不是最高次的項,以“++”號或者“-−”號連接此項與前一項,分別表示此項

系數為正或者系數為負。緊跟一個正整數,表示此項系數的絕對值(如果一個高於00次的項,

其系數的絕對值為11,則無需輸出 11)。如果xx的指數大於11,則接下來緊跟的指數部分的形

式為“x^bxb”,其中 bb為 xx的指數;如果 xx的指數為11,則接下來緊跟的指數部分形式為“xx”;

如果 xx 的指數為00,則僅需輸出系數即可。

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

輸入輸出格式

輸入格式:

輸入共有 22 行

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

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

輸出格式:

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

輸入輸出樣例

輸入樣例#1:
5 
100 -1 1 -3 0 10
輸出樣例#1:
100x^5-x^4+x^3-3x^2+10
輸入樣例#2:
3 
-50 0 0 1 
輸出樣例#2:
-50x^3+1 

說明

NOIP 2009 普及組 第一題

對於100%數據,0<=n<=100,-100<=系數<=100

CODE:

技術分享圖片
 1 //畫一個數軸...-1 ...0...1.... 
 2 #include<iostream>
 3
#include<cstdio> 4 using namespace std; 5 int n,xs; 6 int main() 7 { 8 cin>>n; //指數 9 cin>>xs; //系數 10 /*處理系數*/ 11 if(xs>1 || xs<-1)cout<<xs; 12 else if(xs==-1) cout<<"-"; 13 /*處理指數*/ 14 if (xs!=0) 15 { 16 if(n==1)cout<<"x"; 17 else if(n!=0)cout<<"x^"<<n; 18 } 19 for(int i=n-1;i>=1;i--) 20 { 21 cin>>xs; 22 /*處理系數*/ 23 if(xs==0)continue; //系數為0 24 if(xs>0) cout<<"+"; //系數>0 25 if(xs==-1)cout<<"-"; //系數為-1 26 else if(xs!=1) cout<<xs;//系數為除0,-1,1之外的數 27 /*處理指數*/ 28 if(i==1) cout<<"x"; 29 else if(i!=0) cout<<"x^"<<i; 30 } 31 cin>>xs; 32 /*僅處理系數*/ 33 if(xs>0)cout<<"+"; 34 if(xs!=0) cout<<xs; 35 }
View Code

洛谷P1067 多項式輸出題解