美文网首页
2019-02-27 大数相乘

2019-02-27 大数相乘

作者: 我的的昵称已被使用换一个吧 | 来源:发表于2019-02-27 20:10 被阅读0次

接前文 大数运算

参考:https://blog.csdn.net/outsanding/article/details/79472376

大数相乘:

思想:将输入的字符串,转成char数组,转成int数组。采用分治思想,每一位的相乘。

公式:AB*CD  =  AC (BC+ AD) BD,然后   从后到前满十进位。

如:67*89 = 6*8(7*8 + 6*9)7*9  =48(110)63

从后到前满十进位 

63进6余3--->48(116)3

116进11余6--->59 (6)3

最终结果5963

实现过程

public String multiply(String num1, String num2) {  

     //把字符串转成char数组

     char chars1[] = num1.toCharArray();

     char chars2[] = num2.toCharArray();

     //声明存放结果和两个乘积的容器

     int result[] = new int[chars1.length + chars2.length];

     int n1[]= newint[chars1.length];

     int n2[]= newint[chars2.length];

     //把char转换成int数组。

     for (int i =0; i < chars1.length; i++){

        n1[i] = Integer.parseInt(String.valueOf(chars1[i]));

     }

     for (int j =0; j < chars2.length; j++){

        n2[j] =  Integer.parseInt(String.valueOf(chars2[j]));

     }

     //逐个相乘

     for (int i = 0; i < chars1.length; i++){

        for (int j = 0; j < chars2.length; j++) {

          result[i+j] += n1[i]  *  n2[j];

        }

     }

     //从后往前满十进位

     for (int i = result.length -1; i > 0; i--) {

        result[i-1] += result[i] / 10;

        result[i] = result[i] % 10;

     }

     //转成string并返回

     String resultStr = "";

     for (int i = 0; i < result.length - 1; i++) {

        resultStr += "" +result[i];

     }

     returnresultStr;

   }

---------------------

作者:illustriousness

来源:CSDN

原文:https://blog.csdn.net/outsanding/article/details/79472376

版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章

  • 2019-02-27 大数相乘

    接前文 大数运算 参考:https://blog.csdn.net/outsanding/article/deta...

  • 大数相乘--golang简单实现

    大数乘法之golang实现所谓大数相乘(Multiplication algorithm),就是指数字比较大,相乘...

  • 大数相乘

    所谓大数相乘(Multiplication algorithm),就是指数字比较大,相乘的结果超出了基本类型的表示...

  • 大数相乘

  • 大数相乘

    两个大数相乘,这两个大数分别是a和b,现在分割成两部分,每一部分都是N位,假设是10进制的,其实对于2进制也同样适...

  • 大数相乘

  • 大数相乘

    别忘了把字符串反转便于求导,还有去除前面的0的时候别忘了结果本来就为0的情况,两个数相乘最长长度为len1+len2。

  • 大数相乘

    给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示...

  • 小算法集锦 : 20行代码实现大数相乘

    1.大数相乘 1.1 js 版本 (不计算注释只需要20行) 1.2 C语言 大数相乘 无依赖 简单的 js 转...

  • 大数相乘算法

    1、计算两个大数相乘的结果。2、算法流程:(1)大数可能超出任何一种整数类型,会引发溢出问题,所以用字符串的格式存...

网友评论

      本文标题:2019-02-27 大数相乘

      本文链接:https://www.haomeiwen.com/subject/gdhquqtx.html