poj 1555 Polynomial Showdown

注意:

1.开头系数是负的话,负号后面没有空格;如果是正的话,不输出正号和空格

2.系数是1的话,不输出1;如果是-1的话,也不输出1

3.指数是1的话,不输出^1

4.最后一位,不输出x^0

View Code
#include <stdio.h>

int ar[10],i;

void solve(int j)
{
if(ar[i]!=0)
{
if(i==j)//是头
{
if(ar[i]>0)
{
if(ar[i]==1)printf("x^%d ",i);
else printf("%dx^%d ",ar[i],i);
}
else
{
if(ar[i]==-1)printf("-x^%d ",i);
else printf("-%dx^%d ",-ar[i],i);
}
}
else//不是头
{
if(ar[i]>0)
{
if(ar[i]==1)printf("+ x^%d ",i);
else printf("+ %dx^%d ",ar[i],i);
}
else
{
if(ar[i]==-1)printf("- x^%d ",i);
else printf("- %dx^%d ",-ar[i],i);
}
}
}
i--;
}

int main()
{
int j;
while (scanf("%d",&ar[8])!=EOF)
{
for (i=7;i>=0;i--)
scanf("%d",&ar[i]);
for (i=8;i>=0;i--)
if(ar[i])break;
if(i==-1)
{
printf("0\n");
continue;
}
j=i;
if(i==8)
{
if(ar[i]>0)
{
if(ar[i]==1)printf("x^%d ",i);
else printf("%dx^%d ",ar[i],i);
}
else
{
if(ar[i]==-1)printf("-x^%d ",i);
else printf("-%dx^%d ",-ar[i],i);
}
i--;
}
if(i==7)solve(j);
if(i==6)solve(j);
if(i==5)solve(j);
if(i==4)solve(j);
if(i==3)solve(j);
if(i==2)solve(j);
if(i==1)
{
if(ar[i])
{
if(i==j)//是头
{
if(ar[i]>0)
{
if(ar[i]==1)printf("x ");
else printf("%dx ",ar[i]);
}
else
{
if(ar[i]==-1)printf("-x ");
else printf("-%dx ",-ar[i]);
}
}
else//不是头
{
if(ar[i]>0)
{
if(ar[i]==1)printf("+ x ");
else printf("+ %dx ",ar[i]);
}
else
{
if(ar[i]==-1)printf("- x ");
else printf("- %dx ",-ar[i]);
}
}
}
i--;
}
if(i==0)
{
if(ar[i]!=0)
{
if(i==j)//是头
{
if(ar[i]>0)
printf("%d ",ar[i]);
else
printf("%d ",ar[i]);
}
else//不是头
{
if(ar[i]>0)
printf("+ %d ",ar[i]);
else
printf("- %d ",-ar[i]);
}
}
}
printf("\n");
}
return 0;
}



posted @ 2011-11-16 21:28  104_gogo  阅读(236)  评论(0编辑  收藏  举报