大整数乘法 java实现

来源:互联网 发布:我国经济数据 编辑:程序博客网 时间:2024/06/10 17:35
public static String multiply(String s1, String s2) {        StringBuilder sb1 = new StringBuilder(s1);        StringBuilder sb2 = new StringBuilder(s2);        sb1.reverse();        sb2.reverse();        int[] a = new int[sb1.length() + sb2.length()];        for (int i = 0; i < sb1.length(); i++) {            for (int j = 0; j < sb2.length(); j++) {                a[i + j] += (sb1.charAt(i) - '0') * (sb2.charAt(j) - '0');            }        }        for (int i = 0; i < a.length - 1; i++) {            a[i + 1] += a[i] / 10;            a[i] %= 10;        }        StringBuilder sb = new StringBuilder();        for (int i = 0; i < a.length - 1; i++) {            sb.append(a[i]);        }        if (a[a.length - 1] != 0) {            sb.append(a[a.length - 1]);        }        return sb.reverse().toString();    }    public static void main(String[] args) {        String s1 = "131412315";        String s2 = "76508978567";        String re = multiply(s1, s2);        System.out.println(re);        BigInteger b1 = new BigInteger(s1);        BigInteger b2 = new BigInteger(s2);        BigInteger b3 = b1.multiply(b2);        System.out.println(b3.toString());    }

原创粉丝点击