洛谷P1067 多項式輸出
一隻鶸的刷題記錄
題目描述![]()
洛谷P1067 多項式輸出 輸入格式
輸入共有 2 行
第一行1 個整數,n,表示一進制多項式的次數。
第二行有 n+1個整數,其中第i個整數表示第n-i+1次項的系數,每兩個整數之間用空格隔開。
輸出格式
輸出共 1 行,按題目所述格式輸出多項式。
輸入輸出樣例
輸入 #1
5
100 -1 1 -3 0 10
輸出 #1
100x5-x4+x3-3x2+10
輸入 #2
3
-50 0 0 1
輸出 #2
-50x^3+1
//本質上就是一個簡單的模拟,題解最高贊的方法很簡潔,記錄于此
#include <bits/stdc++.h>
using namespace std;
//int poly[105];
int main()
{
int n,a;
cin>>n;
for(int i=n;i>=0;i--)
{
cin>>a;
if(a){ //判0系數
if(i!=n&&a>0)cout<<"+"; //根據正負、是否為最高此項決定加号
if(abs(a)>1||i==0)cout<<a; //輸出系數(系數不為正負1或指數為0)
if(a==-1&&i)cout<<"-"; //-1系數特判,常數項已特判
if(i>1)cout<<"x^"<<i; //二次及以上輸出指數
if(i==1)cout<<"x"; //一次項
}
}
cout<<endl;
return 0;
}