大数相乘

题目描述

实现两个任意大的整数相乘,如输入123456789,123456789,输出15241578750190521

思路分析

跟大数相加一个道理,也是利用最基本的乘法法则,将其中一个数的个位、十位、百位......分别与另一个数的个位、十位、百位...相乘,然后将结果相加。

代码实现

package leetcode.number;

import java.util.Scanner;

/**
 * @基本功能:大数相乘
 * @program:summary
 * @author:peicc
 * @create:2019-09-12 12:33:57
 **/
public class BigNumMultiply {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        while (sc.hasNext()){
            String str1=sc.next();
            String str2=sc.next();
            String result=bigNumberMultiply(str1,str2);
            System.out.println(result);
        }
    }
    public static String  bigNumberMultiply(String str1,String str2){
        int len1=str1.length();
        int len2=str2.length();
        int maxLen=len1+len2;//乘积最大长度
        int[] result=new int[maxLen];//结果数组
        int[] num1=new int[len1];
        int[] num2=new int[len2];
        for (int i = 0; i =0 ; i--) {
            if(result[i]!=0){
                for (int j = i; j >=0 ; j--) {
                    sb.append(result[j]);
                }
                break;
            }
        }
        return  sb.toString();

    }
}

 

你可能感兴趣的:(leetcode)