关闭

poj 1555 Polynomial Showdown

标签: input
456人阅读 评论(0) 收藏 举报
分类:

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;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:100629次
    • 积分:1532
    • 等级:
    • 排名:千里之外
    • 原创:60篇
    • 转载:10篇
    • 译文:4篇
    • 评论:17条
    最新评论