大整数相乘java_大整数乘法—java实现

大整数相乘

参考博客:

https://blog.csdn.net/oh_maxy/article/details/10903929

https://blog.csdn.net/u010867294/article/details/77482306

大整数相乘,对于计算机来说,由于整数的范围存在限制,如果数值太大,则两个较大整数及其结果在表示时就将可能产生溢出。因此,对于两个大整数的乘法我们就需要将其转化为字符串来进行求解。

分治法实现大整数相乘—算法思想:

当我们输入两个大整数num1,num2,长度分别为n,m,计算机无法直接计算其结果,采用分而治之的思想,我们可以分别将两个数均分为四个部分,记作A,B,C,D,其中:

A为num1的前n/2,

B为num1的后n/2,

C为num2的前m/2

D为num2的后m/2

至此,我们有:

num1 * num2 = (A * 10^(n/2) + B) * (C * 10^(m/2) + D)= AC * 10实现代码:

import java.util.*;

import static java.util.Collections.reverse;

/**

* @author

* @date 2020/10/1 - 20:55

*/

public class DivideMultiply {

public static void main(String[]

你可能感兴趣的:(大整数相乘java)