高精度乘法C语言
#include<stdio.h>
#include<string.h>
int main()
{
char a[202]={0},b[202]={0};
scanf("%s%s",a,b);
int a1[202]={0},b1[202]={0},c1[405]={0},i,j;
int alen=strlen(a),blen=strlen(b);
for(i=0;i<alen;i++)
{
a1[i]=a[alen-1-i]-'0';
}
for(i=0;i<blen;i++)
{
b1[i]=b[blen-1-i]-'0';
}
for(i=0;i<alen;i++)
{
for(j=0;j<blen;j++)
{
c1[i+j]+=a1[i]*b1[j];
}
}
for(i=0;i<alen+blen;i++)
{
if(c1[i]>=10)
{
c1[i+1]+=c1[i]/10;
c1[i]%=10;
}
}
while(!c1[i] && i)
{
i--;
}
for(;i>=0;i--)
{
printf("%d",c1[i]);
}
}
你數過天上的星星嗎

浙公网安备 33010602011771号