Given two numbers represented as strings, return multiplication of the numbers as a string.
Note: The numbers can be arbitrarily large and are non-negative.
原题链接:https://oj.leetcode.com/problems/multiply-strings/
按照乘法原理,从个位开始一位一位相乘相加。
public class MultiplyStrings { public static void main(String[] args) { String ret = new MultiplyStrings().multiply("12","12"); System.out.println(ret); } public String multiply(String num1, String num2) { if(num1 == null || num2 == null || num1.length() == 0 || num2.length() == 0) return ""; if(num1.charAt(0) == '0' || num2.charAt(0) == '0') return "0"; int num = 0; StringBuilder builder = new StringBuilder(); for(int i=num1.length() + num2.length();i>0;i--){ for(int j=Math.min(i-1,num1.length());j>0;j--){ if(i - j <= num2.length()) num += (int)(num1.charAt(j-1)-'0') * (int)(num2.charAt(i-1-j)-'0'); } if(i != 1 || num >0) builder.append(num%10); num /= 10; } return builder.reverse().toString(); } }
时间: 2024-10-29 23:50:50