给定两个以字符串形式表示的非负整数 num1
和 num2
,返回 num1
和 num2
的乘积,它们的乘积也表示为字符串形式。
示例 1:
输入: num1 = "2", num2 = "3"
输出: "6"
示例 2:
输入: num1 = "123", num2 = "456"
输出: "56088"
解题思路:定义一个整形数组,长度为两个字符串长度之和。从后往前遍历两个字符串,并将元素相乘。将乘积结果放到对应的
数组位置。 num1的第i位(高位从0开始)和num2的第j位相乘的结果在乘积中的位置是如果乘积小于10,直接存入到[i+j+1]下标,如果乘积大于9,取模存入[i+j+1](需要注意是否产生进位),取商存入[i+j]。
代码实现:
public class test0508 {
public static void main(String[] args) {
Solution s = new Solution();
String num1 = "123";
String num2 = "456";
String ss = s.multiply(num1,num2);
System.out.println(ss);
}
}
class Solution {
public String multiply(String num1, String num2) {