您的位置:首页 > 其它

大数相乘问题

2012-12-05 19:33 197 查看
当所给数相乘超过2^32次方时候,直接用乘法计算是得不到的。此时可以用整型数组来计算,其中数组中每个存一位。
例如:
a[20],b[20],c[40]存从低位到高位的数。a*b->c
先将c初始化为0:
for(j=0;j<20;j++){
for(k=0;k<a[j];k++){
for(i=0;i<20;i++)
c[i+j]+=b[i];
}
}
for(i=0;i<39;i++)
{
c[i+1]+=c[i]/10;
c[i]=c[i]%10;
}
如此即可得到乘机,然后从高到低逐位显示
for(i=39;c[i]==0;i--);
for(;i>=0;i--)
printf("%d",c[i]);
printf("\n");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: