算法-大整数相乘

题目描述
有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。 输入描述: 空格分隔的两个字符串,代表输入的两个大整数 输出描述: 输入的乘积,用字符串表示
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String num1 = sc.nextBigDecimal().toString(); String num2 = sc.nextBigDecimal().toString();
int[] res = new int[num1.length() + num2.length()]; for(int i = num1.length()-1; i >= 0 ; i--){ int x = num1.charAt(i) - '0'; for(int j = num2.length()-1; j >= 0; j--){ int y = num2.charAt(j) - '0'; res[i+j] += (res[i+j+1] + x*y)/10; //进位数 res[i+j+1] = (res[i+j+1] + x*y)%10; // } }
String str = ""; for(int i = 0; i < res.length; i++){ if(i==0&&res[i]==0) continue; str += res[i]; } System.out.println(str); } }

    推荐阅读