用JAVA实现:给定两个以字符串形式便是的非负整数num1和num2,返回num1和num2的乘积
时间: 2023-06-07 08:12:02 浏览: 130
。解题思路:使用竖式乘法的方法,将num2的每一位与num1相乘,然后将结果累加起来即可。
具体实现如下:
public String multiply(String num1, String num2) {
int len1 = num1.length(), len2 = num2.length();
int[] res = new int[len1 + len2]; // 存放每一位的乘积
// 从后向前遍历,方便进位
for (int i = len1 - 1; i >= 0; i--) {
for (int j = len2 - 1; j >= 0; j--) {
int mul = (num1.charAt(i) - '0') * (num2.charAt(j) - '0'); // 对当前位进行相乘
int p1 = i + j, p2 = i + j + 1; // 对应乘积的位置
int sum = mul + res[p2]; // 加上原来的数值
res[p2] = sum % 10; // 取余数
res[p1] += sum / 10; // 取商,进位
}
}
// 将结果转换为字符串
StringBuilder sb = new StringBuilder();
for (int num : res) {
if (sb.length() != 0 || num != 0) { // 去掉前面的0
sb.append(num);
}
}
return sb.length() == 0 ? "0" : sb.toString();
}
注意,数值的每一位要使用字符来表示,需要将字符转换为数字进行相乘,最后还要将结果转换为字符串返回。
希望能帮到你,如果有问题可以继续问我哦~
阅读全文