24h購物| | PChome| 登入
2009-09-12 20:23:49| 人氣772| 回應0 | 上一篇 | 下一篇

ACM 10326 Q10326: The Polynomial Equation

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

作法 : DP

利用 d311 "數學少女的難題" 所導出的遞迴式 做編修

算出根與係數

請不要暴力算出根與係數

以下作法 在DEV-C++編譯時,無法正確的顯示 (用INT 就OK)

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

#include<stdio.h>
#include<stdlib.h>
int n,m;
long long int w[101],value[101];
int recursion (int t)
{
 int n,m;
 long long int p[101][101]={0};
  for(n=0;n<=t;n++)
   {
     p[n][0]=1;
      for(m=1;m<=n;m++)
         p[n][m]=p[n-1][m]+p[n-1][m-1]*value[n];
   }
  for(n=0;n<=t;n++)
    w[n]=p[t][n];
}
main()
{
 while(scanf("%d",&n)==1)
    {
     
      int a,b,c;
      value[0]=1;
      for(a=1;a<=n;a++)
          {
          scanf("%lld",&value[a]);       
          w[a]=0;
          }
      w[0]=0;
      recursion(n);
      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)
           {
             w[a]*=-1;
             if(n-a!=1)
               {
               
                if(w[a]!=1)
                printf("- %lldx^%d ",w[a],n-a);
                else printf("- x^%d ",n-a);
               }
             else
               {
                if(w[a]!=1)
                printf("- %lldx ",w[a]);
                else printf("- x ");
               }
           }
         else if(w[a]>0)
           {
              if(n-a!=1)
                 {
                   if(w[a]!=1)
                   printf("+ %lldx^%d ",w[a],n-a);
                   else printf("+ x^%d ",n-a);
                 }
               else
                {
                  if(w[a]!=1)
                  printf("+ %lldx ",w[a]);
                  else printf("+ x ");
                 }
            }
          }
        if(n%2==1) w[n]*=-1;
        if(w[n]>=0)
           printf("+ %lld ",w[n]);
        else
           {
           w[n]*=-1;
           printf("- %lld ",w[n]);
           }
        printf("= 0\n");

    }
 return 0;  
}

台長: 來源不明
人氣(772) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ACM |
此分類下一篇:ACM 10533 Q10533: Digit Primes
此分類上一篇:ACM 10098 Q10098: Generating Fast, Sorted Permutation

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