大整數乘法 java實現
阿新 • • 發佈:2019-02-05
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()); }