【笔试】两个大数相乘
package com.baidu.ecom;//import java.math.BigInteger;import java.util.Scanner;public class BigMultiTest {public static void main(String[] args) {Scanner reader=new Scanner(System.in);String numStr1=reader.next();String numStr2=reader.next();int[] intNum1=changetoArray(numStr1);int[] intNum2=changetoArray(numStr2);//BigInteger bi = new BigInteger();multiply(intNum1,intNum2);}public static int[] changetoArray(String numStr){int length=numStr.length();int[] intNum=new int;for(int i=0;i<length;i++)intNum=Integer.parseInt(String.valueOf((numStr.charAt(i))));return intNum;}public static int[] multiply(int[] num1,int[] num2){int length1=num1.length;int length2=num2.length;int[] result=new int;for(int i=0;i<length1;i++)//进行相乘运算for(int j=0;j<length2;j++){int temp = result + num1 * num2;result = temp % 10;result += temp / 10;if (result > 10) {result %= 10;result++;}}StringBuffer sb=new StringBuffer();boolean flag = false;//结合result==0来清除前面多与的0for(int i=result.length-1;i>=0;i--)//通过大数数组来构造字符串{if(result==0&&flag==false)continue;flag = true;//只要出现了以一个不为0的数字,就置flag为true。这句话放的位置不好,可以改进下sb.append(result);}System.out.println(sb.toString());//输出大数字符串return result;}}
页:
[1]