你好,我的意思是:假如有两个大数A,B A*B=X,X太大计算机无法表示,而用你所说的这种分治的类似于大数相加的解法 令A=C+D,B=M+N,相乘之后为CM+CN+DM+DN,这个式子的结果也是X啊,仍旧是计算机无法表示的数这样不是同样会溢出吗?
追答不是这个意思
比如现在假设计算机只能表示0-9
那么11 *11怎么算?
a = b = c = d = 1;
ab * cd = ab*c + ab * 10 * d
= 10 * a * c + b * c + 10 * a * a * d + b * 10 * d;
这时候a*c, b*c, b*d 就是支持的。然后继续这样分下去,
就像小学血乘法一样。是一位一位算的。这里把“一位”理解成计算机一个数字比如int,ULONg能表示的最大范围