大数乘法

static String bigNumMul(String num1,String num2) {
        char num1Chars[] = num1.toCharArray();
        char num2Chars[] = num2.toCharArray();
        int num1Ary[] = new int[num1Chars.length];
        for (int i = 0; i < num1Ary.length; i++) {
            num1Ary[i] = num1Chars[i] - '0';
        }
        
        int num2Ary[] = new int[num2Chars.length];
        for (int i = 0; i < num2Ary.length; i++) {
            num2Ary[i] = num2Chars[i] - '0';
        }
        
        int resAry[] = new int[num1Chars.length + num2Chars.length - 1];
        for (int i = 0; i < num1Ary.length; i++) {
            for (int j = 0; j < num2Ary.length; j++) {
                resAry[i + j] += num1Ary[i] * num2Ary[j];
            }
        }
        
        for (int i = resAry.length - 1; i > 0; i--) {
            resAry[i - 1] += resAry[i] / 10;
            resAry[i] = resAry[i] % 10;
        }
        int shouwei = resAry[0] / 10;
        resAry[0] = resAry[0] % 10;
        
        String res = shouwei == 0 ? "" : "1";
        for (int i = 0; i < resAry.length; i++) {
            res += resAry[i];
        }
        return res;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 近日参加一个笔试,遇到大数乘法问题,这是一个经典的算法题。所谓大数乘法问题其实就是这样的:输入两个整数,要求输出这...
    拉普拉斯妖kk阅读 3,149评论 0 2
  • 大数乘法:
    HangChen阅读 323评论 0 0
  • 1、大数乘法 (1)转换并反转,字符串转换为数字并将字序反转; (2)自动移位,逐位相乘,添加最后的进位; (3)...
    saviochen阅读 563评论 0 2
  • 大数乘法的算法 大数乘法的关键在于如何用字符串来模拟大数乘法。方法有如下几种:模拟普通的手算乘法、利用代数方法优化...
    胡哈哈哈阅读 2,032评论 0 0
  • 算法爬坑之线性表大数乘法 include<iostream> include<memory.h> include<...
    编码的哲哲阅读 458评论 0 4