class Solution {
public String multiply(String num1, String num2) {
int len2 = num2.length();
List<StringBuilder> products = new ArrayList<>();
for(int i = len2 - 1; i >= 0; i--){
StringBuilder product = mul(num1, num2.charAt(i));
for(int j = i; j < len2 - 1; j++)
product.append(‘0‘);
products.add(product);
}
StringBuilder ans = new StringBuilder("0");
for(StringBuilder num : products)
ans = add(ans, num);
while(ans.length() > 1 && ans.charAt(0) == ‘0‘)
ans.deleteCharAt(0);
return ans.toString();
}
StringBuilder mul(String num1, char num2){
int len1 = num1.length();
int carry = 0, b = num2 - ‘0‘;
StringBuilder ans = new StringBuilder();
for(int i = len1 - 1; i >= 0; i--){
int a = num1.charAt(i) - ‘0‘;
int c = a * b + carry;
carry = c / 10;
ans.append(c % 10);
}
if(carry != 0) ans.append(carry);
return ans.reverse();
}
StringBuilder add(StringBuilder num1, StringBuilder num2){
int len1 = num1.length();
int len2 = num2.length();
int i = len1 - 1, j = len2 - 1;
int carry = 0;
StringBuilder ans = new StringBuilder();
while(i >= 0 && j >= 0){
int a = num1.charAt(i) - ‘0‘;
int b = num2.charAt(j) - ‘0‘;
int c = a + b + carry;
carry = c / 10;
ans.append(c % 10);
i--;
j--;
}
while(i >= 0){
int a = num1.charAt(i) - ‘0‘;
int c = a + carry;
carry = c / 10;
ans.append(c % 10);
i--;
}
while(j >= 0){
int b = num2.charAt(j) - ‘0‘;
int c = b + carry;
carry = c / 10;
ans.append(c % 10);
j--;
}
if(carry != 0) ans.append(carry);
return ans.reverse();
}
}
class Solution {
public String multiply(String num1, String num2){
int len1 = num1.length();
int len2 = num2.length();
int[] ans = new int[len1 + len2];
for(int i = len1 - 1; i >= 0; i--){
int a = num1.charAt(i) - ‘0‘;
for(int j = len2 - 1; j >= 0; j--){
int b = num2.charAt(j) - ‘0‘;
int c = a * b + ans[i + j + 1];
ans[i + j] += c / 10;
ans[i + j + 1] = c % 10;
}
}
StringBuilder ansString = new StringBuilder();
int i;
for(i = 0; i < len1 + len2 - 1 && ans[i] == 0; i++);
for(; i < len1 + len2; i++)
ansString.append(ans[i]);
return ansString.toString();
}
}
原文:https://www.cnblogs.com/xiafrog/p/14458871.html