Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Why wrong!请牛人们帮忙看看!

Posted by loves at 2007-04-12 17:12:38 on Problem 1001
#include<stdio.h>
#include<string.h>
void mult(int *a,int *b,int *c)
{//c=a*b;
  int i,j,m,n,k;
  m=a[0];n=b[0];
  k=n+m-1;
  for(i=0;i<=k;i++)c[i]=0;
  for(i=1;i<=m;i++)
  {if(a[i])for(j=1;j<=n;j++)if(b[j])c[i+j-1]+=a[i]*b[j];
  }
  for(i=k;i>=1;i--)
  if(c[i]>9){c[i-1]+=c[i]/10;c[i]%=10;}
  if(c[0]>0)
  {k++; for(i=k;i>=1;i--)c[i]=c[i-1];   }c[0]=k;
 // for(i=0;i<=k;i++)b[i]=c[i];
}
int main()
{int a[2000],b[2000],c[4000];
 int n,i,j,k,l,t;
 char ch[2000];
 while(scanf("%s%d",ch,&n)!=EOF)
 {l=strlen(ch);
  for(i=l-1;i>=0;i--)
   if(ch[i]=='.'){t=i;break;}
   //printf("t=%d\n",t);
  if(t==0)
   {for(j=0,i=0;i<l;i++)
     a[++j]=b[j]=ch[i]-'0';
     a[0]=j;
      //printf("%d ",a[i]);
   }
  else
   {for(i=l-1;i>=t;i--)
     if(ch[i]!='0')break;
     t=i-t;
     //printf("t0=%d\n",t);
     for(k=0,j=0;j<=i;j++)
     { if(ch[j]=='.')continue;
       a[++k]=b[k]=ch[j]-'0';
       //printf("%d ",b[k]);
     }
     a[0]=b[0]=k;
   } 
  for(i=1;i<n;i++)
  { mult(a,b,c);
    for(j=0;j<=c[0];j++)b[j]=c[j];
  }
   for(i=1;i<=b[0];i++)
   {if(i==b[0]-t*n+1)
    printf(".");    
    if(i==1&&b[i]==0)continue;
    printf("%d",b[i]);
   }
   printf("\n");
 }
}
/*
95.123 12
0.4321 20
5.1234 15
6.7592  9
98.999 10
1.0100 12


Sample Output

548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992025569.928573701266488041146654993318703707511666295476720493953024
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001
1.126825030131969720661201
1.126825030131969720661201
*/

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator