这是一个模拟题,就是按照规定执行,找到各种情况后一一分析;
1.考虑符号
2.考虑输出,绝对值为1的系数不输出,然后就是一个符号加一个输出就可以了
3.特殊,系数绝对值为1,系数不输出;次数为1和0要单独输出;
#include<stdio.h>
#include<math.h>
int sum;
void fuhofun(int a,int i)//输出符号
{
if(a==0)return ;
if(a>0&&sum==i)return;
if(a>0){printf("+");return ;}
if(a<0){printf("-");return ;}
}
void shuchufun(int a,int i)//输出各种情况
{
if(abs(a)==1&&i>1){printf("x^%d",i);return ;}
if(abs(a)!=1&&i>1){printf("%dx^%d",abs(a),i);return ;}
if(i==1&&abs(a)==1){printf("x");return;}
if(i==1&&abs(a)!=1)printf("%dx",abs(a));return;
}
int main()
{
int a[120];
int i;
scanf("%d",&sum);
for(i=0;i<=sum;i++)
scanf("%d",&a[i]);
for(i=sum;i>1;i--)
{
fuhofun(a[sum-i],i);//因为是正向输入值,我们可以用sum-i来找到次数对应的系数 ;
if(a[sum-i]!=0)shuchufun(a[sum-i],i);
else continue;
}
if(a[sum-i]!=0){fuhofun(a[sum-i],i);shuchufun(a[sum-i],i);}
i--;
if(a[sum-i]!=0){fuhofun(a[sum-i],i);printf("%d",abs(a[sum-i]));}//单独处理
}