poj 1555 Polynomial Showdown

http://poj.org/problem?id=1555

Polynomial Showdown
额,之前做过,再做一次还是被骗了。mark!

Sample Input

0 0 0 1 22 -333 0 1 -1


 0 0 0 0 0 0 -55 5 0

Sample Output

x^5 + 22x^4 - 333x^3 + x - 1


 -55x^2 + 5x
1 . 不是第一个的话,数字的正负要改成 "空格正负空格"
2. 如果系数是1或者-1,而且不是x^0,要把"1"去掉
3. 所有系数都是0,要输出"0/n";
4.嗯……是水题
mark 代码:
 #include<iostream>
using namespace std;
int main()
{
 int i;
 int a[10];
 int jud,uses;
 char m[][5]={"","x","x^2","x^3","x^4","x^5","x^6","x^7","x^8"};
 while(scanf("%d%d%d%d%d%d%d%d%d",&a[8],&a[7],&a[6],&a[5],&a[4],&a[3],&a[2],&a[1],&a[0])!=EOF)
 {
  jud=0;
  for(i=0;i<=8;i++)
  {
   if(a[i]!=0)
   {
    jud=1;
    break;
   }
  }
  if(jud)
  {
   uses=0;
   for(i=8;i>=0;i--)
   {
    if(a[i]!=0)
    {
     if(uses==0)
     {
      uses=1;
      if(a[i]==1&&i)
      printf("%s",m[i]);
      else if(a[i]==-1&&i)
      printf("-%s",m[i]);
      else
      printf("%d%s",a[i],m[i]);
     }
     else
     {
      if(a[i]>0)
      {
       if(a[i]==1&&i)
       printf(" + %s",m[i]);
       else
       printf(" + %d%s",a[i],m[i]);
      }
      else
      {
       if(a[i]==-1&&i)
        printf(" - %s",m[i]);
       else
       {
        a[i]*=(-1);
        printf(" - %d%s",a[i],m[i]);
       }
      }
     }
    }
   }
   printf("/n");
  }
  else
   printf("0/n");
 }
 return 0;
}
阅读更多
文章标签: input
个人分类: ACM 模拟
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

poj 1555 Polynomial Showdown

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭