24h購物| | PChome| 登入
2009-09-12 19:32:00| 人氣530| 回應0 | 上一篇 | 下一篇

ACM 10326 Q10326: The Polynomial Equation (未完成版)

推薦 0 收藏 0 轉貼0 訂閱站台

題目 給你方程式的根

請輸出原本的方程式... 可惜我TLE了

生成根與係數太慢了

/**********************************************************/

#include<stdio.h>
#include<stdlib.h>
int way[101]={0},value[101];
int n,m;
long long int w[101];
void make (int now,int a,int n,int m,long long int s)
{
  int b=a,c;
  w[now-1]+=s;
  if(now==m+1)   return;
  for(b=a;b<=n;b++)
   {
    way[now]=value[b];
    make(now+1,b+1,n,m,s*way[now]);
   }
}
main()
{
 while(scanf("%d",&n)==1)
    {
     
      int a,b,c;
      for(a=1;a<=n;a++)
          {
          scanf("%d",&value[a]);       
          w[a]=0;
          }
      w[0]=0;
      make(1,1,n,n,1);
      if(n!=1)
      printf("x^%d ",n);
      else printf("x ");
      for(a=1;a<=n-1;a++)
        {
         if(a%2==1) w[a]*=-1;
         if(w[a]<0)
           {
             if(n-a!=1)
               {
                if(w[a]!=-1)
                printf("- %I64dx^%d ",-w[a],n-a);
                else printf("- x^%d ",n-a);
               }
             else
               {
                if(w[a]!=-1)
                printf("- %I64dx ",-w[a]);
                else printf("- x ");
               }
           }
         else if(w[a]>0)
           {
              if(n-a!=1)
                 {
                   if(w[a]!=1)
                   printf("+ %I64dx^%d ",w[a],n-a);
                   else printf("+ x^%d ",n-a);
                 }
               else
                {
                  if(w[a]!=1)
                  printf("+ %I64d ",w[a]);
                  else printf("+ x ");
                 }
            }
          }
        if(n%2==1) w[n]*=-1;
        if(w[n]>=0)
           printf("+ %I64d ",w[n]);
        else
           printf("- %I64d ",-w[n]);
        printf("= 0\n");

    }
 return 0;  
}

台長: 來源不明
人氣(530) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: *未完成的文章* |
此分類下一篇:ACM 838 Q838: Worm World (未完成版)
此分類上一篇:Q10497: Sweet Child Makes Trouble (未完成)

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文