You are on page 1of 4

#include<stdio.

h>
#include<stdlib.h>
#include<time.h>
#include<dos.h>
#define NUM 9000
int P[NUM]={0},M[NUM]={0};
add(int a,int b,int *c,int *T)
{ int ab;
ab=a+b+*T;
*T=(ab/10)%10;
*c=ab%10;
}
adda(int a[],int b[])
{ int T=0,c,i,j;
for(i=0;i<NUM;i++)
{ add(a[i],b[i],&c,&T);
M[i]=c;
}
M[i]=T;
}
mu(char a,char b,char *c,int *T)
{ int ab;
ab=(a-48)*(b-48)+*T;
*T=(ab/10)%10;
*c=ab%10+48;
}
mul(char a[],char b,int ii)
{ int len,i,j=0,T=0;
char C[NUM],c;
len=strlen(a);
for(i=len-1;i>=0;i--)
{ mu(a[i],b,&c,&T);
C[j++]=c;
}
if(T!=0)
{ C[j]=T+48;C[j+1]='\0';}
else C[j]='\0';
for(i=0;i<=ii;i++)
P[i]=0;
for(i=0;i<strlen(C);i++)
{ P[ii+i]=C[i]-48;
}
adda(M,P);
}
mul1(char a[],char b[])
{ int i,len,j=0;
len=strlen(b);
for(i=len-1;i>=0;i--)
{ mul(a,b[i],j);
j++;
}
}
multiply(char a[],char b[],char R[])

{
int T=0,i=0,j=0;
mul1(a,b);
for(i=NUM-1;i>=0;i--)
{ if(M[i]!=0)
break;
}
for(j=0;j<=i;j++)
R[i-j]=M[j]+48;
R[i+1]='\0';
}
intchar(int i,char mui[])
{ if((i/1000)%10!=0)
{ mui[0]=(i/1000)%10+48;
mui[1]=(i/100)%10+48;mui[2]=(i/10)%10+48;
mui[3]=i%10+48;
mui[4]='\0';
}
else if((i/100)%10!=0)
{ mui[0]=(i/100)%10+48;
mui[1]=(i/10)%10+48;
mui[2]=i%10+48;
mui[3]='\0';
}
else if((i/10)%10!=0)
{ mui[0]=(i/10)%10+48;
mui[1]=i%10+48;
mui[2]='\0';
}
else { mui[0]=i%10+48;
mui[1]='\0';
}
}
powd(int N,char R[],char SUM[])
{int i,j; char muN[5];
intchar(N,muN);
SUM[0]=49;SUM[1]='\0';
for(i=1;i<=N;i++)
{ multiply(SUM,muN,R);
strcpy(SUM,R);
for(j=0;j<=NUM;j++)
{P[j]=0;M[j]=0;}

main()
{
int T=0,i=0,j,n=1025;
char a,b,c,R[NUM],SUM[NUM],mui[5];
struct time timep1, timep2,timep;
FILE *fpr,*fpw,*fp;
fp=fopen("in.txt","w");
for(i=1;i<=50;i++)
fprintf(fp,"\n%d",i);
fclose(fp);
fpr=fopen("in.txt","r");
fpw=fopen("out.txt","a");
intchar(n,mui);
while(!feof(fpr))
{ fscanf(fpr,"%d",&n);
gettime(&timep1);
T=0;
SUM[0]=49;SUM[1]='\0';
for(i=1;i<=n;i++)
{ intchar(i,mui);
for(j=0;j<NUM;j++)
M[j]=0;
multiply(SUM,mui,R);
strcpy(SUM,R);
for(j=0;j<=NUM;j++)
{P[j]=0;M[j]=0;}

}
/* powd(n,R,SUM);

*/

if(n==0)
SUM[0]=48;

gettime(&timep2);
fprintf(fpw,"N=%d\n",n);
fprintf(fpw,"%s \nlength=%d\n",SUM,strlen(SUM));
fprintf(fpw," \nThe time is :%2d:%2d:%2d:%2d",timep1.ti_hour,timep1.ti_min,time
p1.ti_sec,timep1.ti_hund);
fprintf(fpw," \nThe time is :%2d:%2d:%2d:%2d\n",timep2.ti_hour,timep2.ti_min,ti
mep2.ti_sec,timep2.ti_hund);

}
fclose(fpr);
fclose(fpw);

You might also like