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

Who can help me?

Posted by wwwaaannngggrs at 2010-05-26 22:59:27 on Problem 1001
My C++ Code
#include <iostream>
int a[150],b[150],c[150];
using namespace std;
void mul(){
     int ac=0;
     for (int i=0;i<150;i++) c[i]=0;
     for (int i=0;i<150;i++){
         ac=0;
         for (int j=0;j<5;j++){
             c[i+j]+=b[i]*a[j];
             ac=c[i+j]/10;
             c[i+j]%=10;
             c[i+j+1]+=ac;
             }
             }
     for (int i=0;i<150;i++) b[i]=c[i];
     }       
             

void Orz(char *s,int n){
     int i,f,l,ll;
     for (i=0;i<6;i++) a[i]=s[i]-'0';
     for (i=0;i<n;i++) mul();
     for (f=0;f<150;f++) if (c[f]) break;
     if (f==150) {cout<<0<<endl; return;};
     for (l=150;l>=0;l--) if (c[l]) break;
     for (i=l;i>=f;i--) cout<<c[i];
     for (ll=5;a[ll]==0;ll--);
     for (i=0;i<(5-ll)*n;i++) cout<<0;
     cout<<endl;
     }

void calc(char *s,int n){
     int i,j,k,pp,f,l;
     for (i=0;i<150;i++) b[i]=0;
     b[0]=1;
     c[0]=1;
     for (pp=0;pp<6;pp++) if (s[pp]=='.') break;
     if (pp==6)
     {
            Orz(s,n);
            return;
     }
     for (i=pp;i<5;i++) s[i]=s[i+1];
     for (i=0;i<5;i++) a[i]=s[4-i]-'0';
     for (i=0;i<n;i++) mul();
     for (f=0;f<150;f++) 
      if (c[f]!=0) break;
     if (f==150) {cout<<0<<endl; return;};
     for (l=150;l>=(5-pp)*n;l--) if (c[l]) break;
     if (l==((5-pp)*n-1))
        {                
        cout<<'.';
        for (i=l;i>=f;i--) cout<<c[i];
        }
        else 
        {
        if (f>(((5-pp)*n)-1)) 
        {
        for (i=l;i>=(5-pp)*n;i--) cout<<c[i];
        }
        else
        
        {for (i=l;i>=(5-pp)*n;i--) cout<<c[i];
         cout<<'.';
         for (i=(5-pp)*n-1;i>=f;i--) cout<<c[i];
         }
         
             
         }
         
      cout<<endl;
     }    
             
         
     
     
int main(){
   int n;
   char s[7]; 
   while (cin>>s>>n) calc(s,n);
   return 0;
}
         
Thanks!

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