如何仅用字符串实现无限大整数的绝对精确乘法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计241个文字,预计阅读时间需要1分钟。
将两个仅由数字字符组成的字符串相乘,返回相乘结果。
javaStringBuilder multiplyTwoIntegerNum(StringBuilder num1, StringBuilder num2) { int length1=num1.length(); int length2=num2.length(); int[] multiplyArray=new int[length1 + length2];
for (int i=length1 - 1; i >=0; i--) { for (int j=length2 - 1; j >=0; j--) { int digit1=num1.charAt(i) - '0'; int digit2=num2.charAt(j) - '0'; int sum=digit1 * digit2 + multiplyArray[i + j + 1]; multiplyArray[i + j + 1]=sum % 10; multiplyArray[i + j] +=sum / 10; } }
StringBuilder result=new StringBuilder(); for (int i=0; i return result;} StringBuilder multiplyTwoIntegerNum(StringBuilder num1, StringBuilder num2){
int length1 = num1.length();
int length2 = num2.length();
int[] multiplyArray = new int[length1 + length2];
for (int i = length1 - 1; i > -1; i--) {
for (int j = length2 - 1; j > -1; j--) {
multiplyArray[i + j] += (num1.charAt(i) - '0') * (num2.charAt(j) - '0');
}
}
StringBuilder result = new StringBuilder();
for (int i = multiplyArray.length - 2; i > 0; i--) {
int d = multiplyArray[i] % 10;
int c = multiplyArray[i] / 10;
multiplyArray[i - 1] += c;
result.insert(0, d);
}
result.insert(0, multiplyArray[0]);
return result;
}
本文共计241个文字,预计阅读时间需要1分钟。
将两个仅由数字字符组成的字符串相乘,返回相乘结果。
javaStringBuilder multiplyTwoIntegerNum(StringBuilder num1, StringBuilder num2) { int length1=num1.length(); int length2=num2.length(); int[] multiplyArray=new int[length1 + length2];
for (int i=length1 - 1; i >=0; i--) { for (int j=length2 - 1; j >=0; j--) { int digit1=num1.charAt(i) - '0'; int digit2=num2.charAt(j) - '0'; int sum=digit1 * digit2 + multiplyArray[i + j + 1]; multiplyArray[i + j + 1]=sum % 10; multiplyArray[i + j] +=sum / 10; } }
StringBuilder result=new StringBuilder(); for (int i=0; i return result;} StringBuilder multiplyTwoIntegerNum(StringBuilder num1, StringBuilder num2){
int length1 = num1.length();
int length2 = num2.length();
int[] multiplyArray = new int[length1 + length2];
for (int i = length1 - 1; i > -1; i--) {
for (int j = length2 - 1; j > -1; j--) {
multiplyArray[i + j] += (num1.charAt(i) - '0') * (num2.charAt(j) - '0');
}
}
StringBuilder result = new StringBuilder();
for (int i = multiplyArray.length - 2; i > 0; i--) {
int d = multiplyArray[i] % 10;
int c = multiplyArray[i] / 10;
multiplyArray[i - 1] += c;
result.insert(0, d);
}
result.insert(0, multiplyArray[0]);
return result;
}

