题解 P1067 【多项式输出】
#include<bits/stdc++.h>
using namespace std;
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"; 一次项
}
}
}
此输出一项流程应该是这样 1.系数为0?结束,否则继续;
2.是开头第一项?跳转至(4),否则继续;
3.系数为正?输出加号并继续,否则继续;
4.系数是±1?继续,否则跳转至6;
5.是常数项(只有数字没有字母)?继续,否则跳转至7;
6.输出系数并继续;
7.系数是-1?继续,否则跳转至10;
8.是常数项?跳转至10,否则继续;
9.输出负号并继续;
10.指数>1?继续,否则跳转至12;
11.输出"x^指数"并继续;
12.指数=1?输出"x"并结束,否则结束;
对每一项都按流程跑一遍就AC了