char* dashuxiangcheng(char *a,char *b){
int i,j,k=0;
static char sum[1000]={'\0'};
memset(sum,'\0',1000);
int len1=strlen(a);
int len2=strlen(b);
int len=len1+len2;
int *a1=(int *)malloc(sizeof(int)*len1);
int *b1=(int *)malloc(sizeof(int)*len2);
int *c=(int *)malloc(sizeof(int)*len);
memset(c,0,sizeof(int)*len);
for(i=0;i<len1;i++){
a1[i]=a[len1-i-1]-'0';
}
for(i=0;i<len2;i++){
b1[i]=b[len2-i-1]-'0';
}
for(i=0;i<len2;i++){
for(j=0;j<len1;j++){
c[j+i]=a1[j]*b1[i]+c[j+i];
}
}
for(i=0;i<len;i++){
c[i+1]=(int)c[i+1]+c[i]/10;
c[i]=(int)c[i]%10;
}
for(i=len-1;i>=0;i--){
if(c[i]!=0){
k=i;
break;
}
}
for(i=k,j=0;i>=0;i--,j++)
sum[j]=c[i]+'0';
free(a1);
free(b1);
free(c);
return sum;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交