注册 登录
编程论坛 C++教室

大整数乘法的问题

wghost 发布于 2010-09-11 14:34, 4171 次点击
给定X和Y都是n位整数,计算乘积XY。分治算法思想,将n位X和Y分成2段,每段n/2位。则X分为AB两段,Y分为CD两段。
有X=A*(10)^(n/2)+B,Y=C*(10)^(n/2)+D;XY=(A*(10)^(n/2)+B)(C*(10)^(n/2)+D)=AC*(10)^n+(AD+BC)*(10)^(n/2)+BD。

我认为既然是大整数乘法,就应该能进行计算机所不能表示的整数的乘法,所以我觉得用字符串来表示两个整数比较合适,但是有一点,如果计算结果超出了计算机所能表达的整数范围,那将不会显示出正确的结果,所以我觉得把这个结果转换成字符串比较合适,但是如何能实现这个过程,还请高手指点???!!!
2 回复
#2
cppzh2010-09-12 01:41
用数组表示大整数,数组元素为k位整数。(每个数组元素只存一位整数有点浪费。)
小学的乘法运算推广到每次进行k位整数间的乘法运算。接分
#3
xxlovemf2010-09-12 17:43
这是个不错的例子
供你参考
http://blog.
1