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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值