[C++] 纯文本查看 复制代码 void g_chen()//10进制高精度乘法
{
char a[1000],b[1000];
int a1[1000]={0},b1[1000]={0},c1[2001]={0};
cin>>a>>b; //输入
int len_a=strlen(a);//截取长度
int len_b=strlen(b);
//int len=max(len_a,len_b);
int jw=0;//进位
for(int i=len_a-1;i>=0;i--)//反向+转换int
{
a1[len_a-1-i]=a[i]-'0';
}
for(int i=len_b-1;i>=0;i--)
{
b1[len_b-1-i]=b[i]-'0';
}
for(int i=0;i<len_a;i++)//乘法
for(int j=0;j<len_b;j++)
{
c1[i+j]+=a1[i]*b1[j];
c1[i+j+1]+=(c1[i+j]/10);
c1[i+j]=c1[i+j]%10;
}
int flag=1;
for(int i=len_a+len_b;i>=0;i--)
{
if((flag==1)&&c1[i]==0){}//如果c第1个位0,跳过
else
{cout<<c1[i];
flag=0;
}
}
if(flag==1) cout<<0;//如果没输出任何数,输出0
} |