多项式输出(洛谷-P1067)
題目描述
一元 n 次多項(xiàng)式可用如下的表達(dá)式表示:
其中,aixi稱為 i 次項(xiàng),ai 稱為 i 次項(xiàng)的系數(shù)。給出一個(gè)一元多項(xiàng)式各項(xiàng)的次數(shù)和系數(shù),請(qǐng)按照如下規(guī)定的格式要求輸出該多項(xiàng)式:
1. 多項(xiàng)式中自變量為 x,從左到右按照次數(shù)遞減順序給出多項(xiàng)式。
2. 多項(xiàng)式中只包含系數(shù)不為 0 的項(xiàng)。
3. 如果多項(xiàng)式 n 次項(xiàng)系數(shù)為正,則多項(xiàng)式開(kāi)頭不出現(xiàn)“+”號(hào),如果多項(xiàng)式 n 次項(xiàng)系數(shù)為負(fù),則多項(xiàng)式以“-”號(hào)開(kāi)頭。
4. 對(duì)于不是最高次的項(xiàng),以“+”號(hào)或者“-”號(hào)連接此項(xiàng)與前一項(xiàng),分別表示此項(xiàng)系數(shù)為正或者系數(shù)為負(fù)。緊跟一個(gè)正整數(shù),表示此項(xiàng)系數(shù)的絕對(duì)值(如果一個(gè)高于 0 次的項(xiàng),其系數(shù)的絕對(duì)值為 1,則無(wú)需輸出 1)。如果 x 的指數(shù)大于 1,則接下來(lái)緊跟的指數(shù)部分的形式為“x^b”,其中 b 為 x 的指數(shù);如果 x 的指數(shù)為 1,則接下來(lái)緊跟的指數(shù)部分形式為“x”;如果 x 的指數(shù)為 0,則僅需輸出系數(shù)即可。
5. 多項(xiàng)式中,多項(xiàng)式的開(kāi)頭、結(jié)尾不含多余的空格。
輸入輸出格式
輸入格式:
輸入共有 2 行
第一行 1 個(gè)整數(shù),n,表示一元多項(xiàng)式的次數(shù)。
第二行有 n+1 個(gè)整數(shù),其中第 i 個(gè)整數(shù)表示第 n-i+1 次項(xiàng)的系數(shù),每?jī)蓚€(gè)整數(shù)之間用空
格隔開(kāi)。
輸出格式:
輸出共 1 行,按題目所述格式輸出多項(xiàng)式。
輸入輸出樣例
輸入樣例#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
源代碼
#include<iostream> #include<cmath> using namespace std; int main() {int n,a;int i;cin>>n;for(i=n;i>=0;i--){cin>>a;if(a!=0)//判斷系數(shù){if(i!=n&&a>0)//根據(jù)正負(fù)、是否為最高此項(xiàng)決定加號(hào)cout<<"+";if(fabs(a)>1||i==0)//系數(shù)不為正負(fù)1或指數(shù)為0cout<<a;if(a==-1&&i)//-1系數(shù)特判cout<<"-";if(i>1)//二次及以上輸出指數(shù)cout<<"x^"<<i;if(i==1)//一次項(xiàng)cout<<"x";}}return 0; } 新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的多项式输出(洛谷-P1067)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信息学奥赛C++语言:满足条件的数累加
- 下一篇: 烤鸡(洛谷-P2089)