이 질문은 단지 일회성에 매우 신중
나에게이 부주의 곤약은 세 가지 테스트 포인트를 다운로드
코드 첫
#include <bits/stdc++.h>
using namespace std;
//以上两行就不解释了
int a[110],n;//a数组记录系数,n代表最高几次项
int main() {
scanf("%d",&n);
for(int i=n; i>=0; i--)
scanf("%d",&a[i]);
//先输入
for(int i=n; i>=1; i--)//循环输出开始
if(a[i]!=0)//首先输出的项的系数不得为0
if((a[i]<0||abs(a[i]==1))&&i!=n)//a为负数或为1和负1在一起操作
if(a[i]==1)//a为一的话直接输出+x^i
if(i>1)//如果i=1的话要加个特判
cout<<"+x^"<<i;
else cout<<"+x";
else if(a[i]==-1)//跟上面差不多
if(i>1)
cout<<"-x^"<<i;
else cout<<"-x";
else//如果是负数且不是1or-1就直接输出那个数
if(i>1)//一样要加特判
cout<<a[i]<<"x^"<<i;
else cout<<a[i]<<"x";
else if(a[i]>0&&i!=n)//如果>0就要在前面输加号(当然,如果次数是1是不能这样输出的)
if(i>1)//若=1就不用输出^1
cout<<"+"<<a[i]<<"x^"<<i;
else cout<<"+"<<a[i]<<"x";
else if(i==n)//若是第一个要输出的数就不必输出加号
if(a[i]==-1)cout<<"-x^"<<i;
else if(a[i]==1)cout<<"x^"<<i;
else if(a[i]!=0)cout<<a[i]<<"x^"<<i;
if(a[0]>0)cout<<"+"<<a[0]<<"\n";//=0就只输出系数
else if(a[0]!=0)cout<<a[0]<<"\n";
return 0;//圆满完工
}
일반적으로, 물은 여전히 매우 제목입니다 조심하는 것입니다.