题解 | #多项式输出#
多项式输出
https://ac.nowcoder.com/acm/problem/16622
对于这个题,鼠鼠当时写了好一会,这个题我认为就是要准确的进行分类操作,首先,对于首项,系数为正数是不需要写出"+"号的,负数是要写出"-"的,对于其他项都要写出正负号,第二,就是系数是否为0,如果为0,这一项就不需要写出来,直接用continue进行下一项,如果为1,那么1是不用写出来的,系数剩下的情况就是常规情况,第三是指数问题,如果指数为1,是不需要写"^i"(i表示指数),如果指数为0,直接写出系数即可,其余的情况都是要加上"^i"。下面是鼠鼠修改后自己代码后的最终版本。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a;
bool is_first=true;
for(int i=n;i>=0;i--)
{
cin>>a;
if(a==0)
{
continue;
}
if(!is_first&&a>0) cout<<"+";
else if(a<0) cout<<"-";
if(i==0) cout<<abs(a);
if(i>0&&abs(a)==1) cout<<"x";
if(i>0&&abs(a)>1) cout<<abs(a)<<"x";
if(i>=2) cout<<"^"<<i;
is_first=false;
}
}