高精度乘法计算
利用字符数组存储64位的乘数和被乘数,然后用字符数组返回乘值
#include<stdio.h>
#include<string.h>
int main(){
char a[65],b[65];
int ans[130];
int len_a,len_b;
printf("请输入2个乘数:\n");
scanf("%s %s",&a,&b);
len_a=strlen(a);
len_b=strlen(b);
memset(ans,0,sizeof(ans));
int i,j;
for(i=0;i<len_a;i++){ //逐个位数相乘
for(j=0;j<len_b;j++){
ans[i+j+1]+=(a[i]-'0')*(b[j]-'0');
}
}
for(i=len_a+len_b-1;i>0;i--){ //处理进位
if(ans[i]>=10){
ans[i-1]+=ans[i]/10;
ans[i]=ans[i]%10;
}
}
i=0;
while(ans[i]==0){ //前面的0不要
i++;
}
printf("乘积为:");
for(;i<len_a+len_b;i++){
printf("%d",ans[i]);
}
return 0;
}